diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2025-09-27 21:29:53 +0200 |
|---|---|---|
| committer | DanielGavin <danielgavin5@hotmail.com> | 2025-09-27 21:29:53 +0200 |
| commit | 2be257718c637e2f42b760fe9acca3eb7674530a (patch) | |
| tree | 81fa0659c7f00a797b4e770df9b78eca93fdd97a /src/server/requests.odin | |
| parent | 0cc6300920f1a8b8f5191f30f9f5eae1b301959d (diff) | |
| parent | d9e6c6aa6988e880448c1418c4a904c66f157fc3 (diff) | |
Merge branch 'master' into remove-unused-imports
Diffstat (limited to 'src/server/requests.odin')
| -rw-r--r-- | src/server/requests.odin | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/server/requests.odin b/src/server/requests.odin index 355cf1b..c013ffc 100644 --- a/src/server/requests.odin +++ b/src/server/requests.odin @@ -699,6 +699,8 @@ request_initialize :: proc( signatureTriggerCharacters := []string{"(", ","} signatureRetriggerCharacters := []string{","} + semantic_range_support := initialize_params.capabilities.textDocument.semanticTokens.requests.range + response := make_response_message( params = ResponseInitializeParams { capabilities = ServerCapabilities { @@ -718,8 +720,8 @@ request_initialize :: proc( retriggerCharacters = signatureRetriggerCharacters, }, semanticTokensProvider = SemanticTokensOptions { - range = config.enable_semantic_tokens, - full = config.enable_semantic_tokens, + range = config.enable_semantic_tokens && semantic_range_support, + full = config.enable_semantic_tokens && !semantic_range_support, legend = SemanticTokensLegend { tokenTypes = semantic_token_type_names, tokenModifiers = semantic_token_modifier_names, @@ -1207,12 +1209,10 @@ request_semantic_token_range :: proc( tokens_params: SemanticTokensResponseParams if config.enable_semantic_tokens { - resolve_entire_file_cached(document) + symbols := resolve_ranged_file(document, semantic_params.range, context.temp_allocator) - if file, ok := file_resolve_cache.files[document.uri.uri]; ok { - tokens := get_semantic_tokens(document, semantic_params.range, file.symbols) - tokens_params = semantic_tokens_to_response_params(tokens) - } + tokens := get_semantic_tokens(document, semantic_params.range, symbols) + tokens_params = semantic_tokens_to_response_params(tokens) } response := make_response_message(params = tokens_params, id = id) |