@@ -181,14 +181,21 @@ pub mod ls_util {
181
181
/// Convert an RLS def-kind to a language server protocol symbol-kind.
182
182
pub fn source_kind_from_def_kind ( k : DefKind ) -> SymbolKind {
183
183
match k {
184
- DefKind :: Enum => SymbolKind :: Enum ,
185
- DefKind :: TupleVariant => SymbolKind :: Constant ,
184
+ DefKind :: Enum | DefKind :: Union => SymbolKind :: Enum ,
185
+ DefKind :: Static | DefKind :: Const => SymbolKind :: Constant ,
186
186
DefKind :: Tuple => SymbolKind :: Array ,
187
- DefKind :: StructVariant | DefKind :: Union | DefKind :: Struct => SymbolKind :: Class ,
188
- DefKind :: Function | DefKind :: Method | DefKind :: Macro => SymbolKind :: Function ,
187
+ DefKind :: Struct => SymbolKind :: Class ,
188
+ DefKind :: Function | DefKind :: Macro => SymbolKind :: Function ,
189
+ DefKind :: Method => SymbolKind :: Method ,
189
190
DefKind :: Mod => SymbolKind :: Module ,
190
191
DefKind :: Trait | DefKind :: Type | DefKind :: ExternType => SymbolKind :: Interface ,
191
- DefKind :: Local | DefKind :: Static | DefKind :: Const | DefKind :: Field => SymbolKind :: Variable ,
192
+ DefKind :: Local => SymbolKind :: Variable ,
193
+ DefKind :: Field | DefKind :: TupleVariant | DefKind :: StructVariant => SymbolKind :: Field ,
194
+
195
+ // Waiting for languageserver-types be updated to LSP 3 spec
196
+ //DefKind::Struct => SymbolKind::Struct,
197
+ //DefKind::TupleVariant | DefKind::StructVariant => SymbolKind::EnumMember,
198
+ //DefKind::Type => SymbolKind::TypeParameter,
192
199
}
193
200
}
194
201
0 commit comments