Skip to content

Commit 47890ef

Browse files
authored
ide: internal refactor of Name construction (#790)
make it easier to create a symbols::Name from a ast::Name/ast::NameRef
1 parent 49ea2dd commit 47890ef

File tree

9 files changed

+78
-77
lines changed

9 files changed

+78
-77
lines changed

crates/squawk_ide/src/binder.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ fn bind_create_index(b: &mut Binder, create_index: ast::CreateIndex) {
116116
return;
117117
};
118118

119-
let index_name = Name::new(name.syntax().text().to_string());
119+
let index_name = Name::from_node(&name);
120120
let name_ptr = SyntaxNodePtr::new(name.syntax());
121121

122122
let Some(schema) = b.current_search_path().first().cloned() else {
@@ -195,7 +195,7 @@ fn bind_create_schema(b: &mut Binder, create_schema: ast::CreateSchema) {
195195
return;
196196
};
197197

198-
let schema_name = Name::new(schema_name_node.syntax().text().to_string());
198+
let schema_name = Name::from_node(&schema_name_node);
199199
let name_ptr = SyntaxNodePtr::new(schema_name_node.syntax());
200200

201201
let schema_id = b.symbols.alloc(Symbol {
@@ -213,10 +213,10 @@ fn item_name(path: &ast::Path) -> Option<Name> {
213213
let segment = path.segment()?;
214214

215215
if let Some(name) = segment.name() {
216-
return Some(Name::new(name.syntax().text().to_string()));
216+
return Some(Name::from_node(&name));
217217
}
218218
if let Some(name) = segment.name_ref() {
219-
return Some(Name::new(name.syntax().text().to_string()));
219+
return Some(Name::from_node(&name));
220220
}
221221

222222
None
@@ -240,7 +240,7 @@ fn schema_name(b: &Binder, path: &ast::Path, is_temp: bool) -> Option<Schema> {
240240
.and_then(|q| q.segment())
241241
.and_then(|s| s.name_ref())
242242
{
243-
return Some(Schema(Name::new(name_ref.syntax().text().to_string())));
243+
return Some(Schema(Name::from_node(&name_ref)));
244244
}
245245

246246
if is_temp {
@@ -339,7 +339,7 @@ fn extract_param_signature(param_list: Option<ast::ParamList>) -> Option<Vec<Nam
339339
&& let Some(segment) = path.segment()
340340
&& let Some(name_ref) = segment.name_ref()
341341
{
342-
params.push(Name::new(name_ref.syntax().text().to_string()));
342+
params.push(Name::from_node(&name_ref));
343343
}
344344
}
345345
(!params.is_empty()).then_some(params)

crates/squawk_ide/src/code_actions.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -406,14 +406,12 @@ fn remove_redundant_alias(
406406
let target = token.parent_ancestors().find_map(ast::Target::cast)?;
407407

408408
let as_name = target.as_name()?;
409-
let alias_name = as_name.name()?;
410-
411409
let (inferred_column, _) = ColumnName::inferred_from_target(target.clone())?;
412410
let inferred_column_alias = inferred_column.to_string()?;
413411

414-
let alias = alias_name.syntax().text().to_string();
412+
let alias = as_name.name()?;
415413

416-
if Name::new(alias) != Name::new(inferred_column_alias) {
414+
if Name::from_node(&alias) != Name::from_string(inferred_column_alias) {
417415
return None;
418416
}
419417

crates/squawk_ide/src/hover.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,9 @@ fn hover_column(
130130
.ancestors()
131131
.any(|a| ast::Values::can_cast(a.kind()))
132132
{
133-
Name::new(name_ref.syntax().text().to_string())
133+
Name::from_node(name_ref)
134134
} else {
135-
Name::new(column_name_node.text().to_string())
135+
Name::from_string(column_name_node.text().to_string())
136136
};
137137
return Some(format!("column {}.{}", cte_name, column_name));
138138
}

crates/squawk_ide/src/inlay_hints.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ fn inlay_hint_insert(
108108
if let ast::TableArg::Column(column) = arg
109109
&& let Some(name) = column.name()
110110
{
111-
let col_name = Name::new(name.syntax().text().to_string());
111+
let col_name = Name::from_node(&name);
112112
let target = Some(name.syntax().text_range());
113113
Some((col_name, target))
114114
} else {

0 commit comments

Comments
 (0)