@@ -185,19 +185,27 @@ def on_post_exit_async(self, session: 'Session', exit_code: int, exception: Opti
185
185
pass
186
186
187
187
188
+ def _sequence_to_lsp_indices (sequence : Sequence [Any ]) -> List [int ]:
189
+ return list (range (1 , len (sequence ) + 1 ))
190
+
191
+
192
+ def _enum_like_class_to_list (c : Type [object ]) -> List [str ]:
193
+ return [v for k , v in c .__dict__ .items () if not k .startswith ('_' )]
194
+
195
+
188
196
def get_initialize_params (variables : Dict [str , str ], workspace_folders : List [WorkspaceFolder ],
189
197
config : ClientConfig ) -> dict :
190
- completion_kinds = list ( range ( 1 , len ( COMPLETION_KINDS ) + 1 ) )
191
- symbol_kinds = list ( range ( 1 , len ( SYMBOL_KINDS ) + 1 ) )
192
- diagnostic_tag_value_set = [ v for k , v in DiagnosticTag . __dict__ . items () if not k . startswith ( '_' )]
193
- completion_tag_value_set = [ v for k , v in CompletionItemTag . __dict__ . items () if not k . startswith ( '_' )]
194
- symbol_tag_value_set = [ v for k , v in SymbolTag . __dict__ . items () if not k . startswith ( '_' )]
195
- semantic_token_types = [ v for k , v in SemanticTokenTypes . __dict__ . items () if not k . startswith ( '_' )]
198
+ completion_kinds = _sequence_to_lsp_indices ( COMPLETION_KINDS )
199
+ symbol_kinds = _sequence_to_lsp_indices ( SYMBOL_KINDS )
200
+ diagnostic_tag_value_set = _enum_like_class_to_list ( DiagnosticTag )
201
+ completion_tag_value_set = _enum_like_class_to_list ( CompletionItemTag )
202
+ symbol_tag_value_set = _enum_like_class_to_list ( SymbolTag )
203
+ semantic_token_types = _enum_like_class_to_list ( SemanticTokenTypes )
196
204
if config .semantic_tokens is not None :
197
205
for token_type in config .semantic_tokens .keys ():
198
206
if token_type not in semantic_token_types :
199
207
semantic_token_types .append (token_type )
200
- semantic_token_modifiers = [ v for k , v in SemanticTokenModifiers . __dict__ . items () if not k . startswith ( '_' )]
208
+ semantic_token_modifiers = _enum_like_class_to_list ( SemanticTokenModifiers )
201
209
first_folder = workspace_folders [0 ] if workspace_folders else None
202
210
general_capabilities = {
203
211
# https://microsoft.github.io/language-server-protocol/specification#regExp
0 commit comments