Skip to content

Commit bed2c1c

Browse files
committed
Add TraitAlias variant to SymbolKind and FileSymbolKind
1 parent aa2140e commit bed2c1c

File tree

9 files changed

+16
-12
lines changed

9 files changed

+16
-12
lines changed

crates/hir/src/symbols.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ pub enum FileSymbolKind {
6868
Static,
6969
Struct,
7070
Trait,
71+
TraitAlias,
7172
TypeAlias,
7273
Union,
7374
}
@@ -154,8 +155,7 @@ impl<'a> SymbolCollector<'a> {
154155
self.collect_from_trait(id);
155156
}
156157
ModuleDefId::TraitAliasId(id) => {
157-
// FIXME: Add `FileSymbolKind::TraitAlias`?
158-
self.push_decl(id, FileSymbolKind::Trait);
158+
self.push_decl(id, FileSymbolKind::TraitAlias);
159159
}
160160
ModuleDefId::TypeAliasId(id) => {
161161
self.push_decl_assoc(id, FileSymbolKind::TypeAlias);

crates/ide-completion/src/item.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ impl_from!(SymbolKind for CompletionItemKind);
288288

289289
impl CompletionItemKind {
290290
#[cfg(test)]
291-
pub(crate) fn tag(&self) -> &'static str {
291+
pub(crate) fn tag(self) -> &'static str {
292292
match self {
293293
CompletionItemKind::SymbolKind(kind) => match kind {
294294
SymbolKind::Attribute => "at",
@@ -312,6 +312,7 @@ impl CompletionItemKind {
312312
SymbolKind::Struct => "st",
313313
SymbolKind::ToolModule => "tm",
314314
SymbolKind::Trait => "tt",
315+
SymbolKind::TraitAlias => "tr",
315316
SymbolKind::TypeAlias => "ta",
316317
SymbolKind::TypeParam => "tp",
317318
SymbolKind::Union => "un",

crates/ide-completion/src/render.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -367,8 +367,9 @@ fn res_to_kind(resolution: ScopeDef) -> CompletionItemKind {
367367
ScopeDef::ModuleDef(Const(..)) => CompletionItemKind::SymbolKind(SymbolKind::Const),
368368
ScopeDef::ModuleDef(Static(..)) => CompletionItemKind::SymbolKind(SymbolKind::Static),
369369
ScopeDef::ModuleDef(Trait(..)) => CompletionItemKind::SymbolKind(SymbolKind::Trait),
370-
// FIXME: Add `SymbolKind::TraitAlias`?
371-
ScopeDef::ModuleDef(TraitAlias(..)) => CompletionItemKind::SymbolKind(SymbolKind::Trait),
370+
ScopeDef::ModuleDef(TraitAlias(..)) => {
371+
CompletionItemKind::SymbolKind(SymbolKind::TraitAlias)
372+
}
372373
ScopeDef::ModuleDef(TypeAlias(..)) => CompletionItemKind::SymbolKind(SymbolKind::TypeAlias),
373374
ScopeDef::ModuleDef(BuiltinType(..)) => CompletionItemKind::BuiltinType,
374375
ScopeDef::GenericParam(param) => CompletionItemKind::SymbolKind(match param {

crates/ide-db/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ pub enum SymbolKind {
191191
Struct,
192192
ToolModule,
193193
Trait,
194+
TraitAlias,
194195
TypeAlias,
195196
TypeParam,
196197
Union,
@@ -221,6 +222,7 @@ impl From<FileSymbolKind> for SymbolKind {
221222
FileSymbolKind::Static => SymbolKind::Static,
222223
FileSymbolKind::Struct => SymbolKind::Struct,
223224
FileSymbolKind::Trait => SymbolKind::Trait,
225+
FileSymbolKind::TraitAlias => SymbolKind::TraitAlias,
224226
FileSymbolKind::TypeAlias => SymbolKind::TypeAlias,
225227
FileSymbolKind::Union => SymbolKind::Union,
226228
}

crates/ide/src/navigation_target.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,7 @@ impl ToNavFromAst for hir::Trait {
252252
const KIND: SymbolKind = SymbolKind::Trait;
253253
}
254254
impl ToNavFromAst for hir::TraitAlias {
255-
// FIXME: Add `SymbolKind::TraitAlias`?
256-
const KIND: SymbolKind = SymbolKind::Trait;
255+
const KIND: SymbolKind = SymbolKind::TraitAlias;
257256
}
258257

259258
impl<D> TryToNav for D

crates/ide/src/syntax_highlighting/highlight.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,8 +410,7 @@ fn highlight_def(
410410
h
411411
}
412412
Definition::Trait(_) => Highlight::new(HlTag::Symbol(SymbolKind::Trait)),
413-
// FIXME: Add `SymbolKind::TraitAlias`?
414-
Definition::TraitAlias(_) => Highlight::new(HlTag::Symbol(SymbolKind::Trait)),
413+
Definition::TraitAlias(_) => Highlight::new(HlTag::Symbol(SymbolKind::TraitAlias)),
415414
Definition::TypeAlias(type_) => {
416415
let mut h = Highlight::new(HlTag::Symbol(SymbolKind::TypeAlias));
417416

crates/ide/src/syntax_highlighting/inject.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,8 +274,7 @@ fn module_def_to_hl_tag(def: Definition) -> HlTag {
274274
Definition::Const(_) => SymbolKind::Const,
275275
Definition::Static(_) => SymbolKind::Static,
276276
Definition::Trait(_) => SymbolKind::Trait,
277-
// FIXME: Add `SymbolKind::TraitAlias`?
278-
Definition::TraitAlias(_) => SymbolKind::Trait,
277+
Definition::TraitAlias(_) => SymbolKind::TraitAlias,
279278
Definition::TypeAlias(_) => SymbolKind::TypeAlias,
280279
Definition::BuiltinType(_) => return HlTag::BuiltinType,
281280
Definition::Macro(_) => SymbolKind::Macro,

crates/ide/src/syntax_highlighting/tags.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ impl HlTag {
150150
SymbolKind::Struct => "struct",
151151
SymbolKind::ToolModule => "tool_module",
152152
SymbolKind::Trait => "trait",
153+
SymbolKind::TraitAlias => "trait_alias",
153154
SymbolKind::TypeAlias => "type_alias",
154155
SymbolKind::TypeParam => "type_param",
155156
SymbolKind::Union => "union",

crates/rust-analyzer/src/to_proto.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ pub(crate) fn symbol_kind(symbol_kind: SymbolKind) -> lsp_types::SymbolKind {
5050
SymbolKind::Struct => lsp_types::SymbolKind::STRUCT,
5151
SymbolKind::Enum => lsp_types::SymbolKind::ENUM,
5252
SymbolKind::Variant => lsp_types::SymbolKind::ENUM_MEMBER,
53-
SymbolKind::Trait => lsp_types::SymbolKind::INTERFACE,
53+
SymbolKind::Trait | SymbolKind::TraitAlias => lsp_types::SymbolKind::INTERFACE,
5454
SymbolKind::Macro
5555
| SymbolKind::BuiltinAttr
5656
| SymbolKind::Attribute
@@ -135,6 +135,7 @@ pub(crate) fn completion_item_kind(
135135
SymbolKind::Static => lsp_types::CompletionItemKind::VALUE,
136136
SymbolKind::Struct => lsp_types::CompletionItemKind::STRUCT,
137137
SymbolKind::Trait => lsp_types::CompletionItemKind::INTERFACE,
138+
SymbolKind::TraitAlias => lsp_types::CompletionItemKind::INTERFACE,
138139
SymbolKind::TypeAlias => lsp_types::CompletionItemKind::STRUCT,
139140
SymbolKind::TypeParam => lsp_types::CompletionItemKind::TYPE_PARAMETER,
140141
SymbolKind::Union => lsp_types::CompletionItemKind::STRUCT,
@@ -656,6 +657,7 @@ fn semantic_token_type_and_modifiers(
656657
SymbolKind::Union => semantic_tokens::UNION,
657658
SymbolKind::TypeAlias => semantic_tokens::TYPE_ALIAS,
658659
SymbolKind::Trait => semantic_tokens::INTERFACE,
660+
SymbolKind::TraitAlias => semantic_tokens::INTERFACE,
659661
SymbolKind::Macro => semantic_tokens::MACRO,
660662
SymbolKind::BuiltinAttr => semantic_tokens::BUILTIN_ATTRIBUTE,
661663
SymbolKind::ToolModule => semantic_tokens::TOOL_MODULE,

0 commit comments

Comments
 (0)