aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/completion.odin24
-rw-r--r--src/server/requests.odin9
-rw-r--r--src/server/types.odin6
3 files changed, 24 insertions, 15 deletions
diff --git a/src/server/completion.odin b/src/server/completion.odin
index e4604b7..f5f32ac 100644
--- a/src/server/completion.odin
+++ b/src/server/completion.odin
@@ -1830,16 +1830,24 @@ format_to_label_details :: proc(list: ^CompletionList) {
case .Keyword:
item.detail = "keyword"
}
-
- // hack for sublime text's issue
+
+ // hack for sublime text's issue
// remove when this issue is fixed: https://github.com/sublimehq/sublime_text/issues/6033
// or if this PR gets merged: https://github.com/sublimelsp/LSP/pull/2293
- dt:= &item.labelDetails.? or_else nil
- if dt == nil do continue
- if strings.contains(dt.detail, "..") && strings.contains(dt.detail, "#") {
- s, _ := strings.replace_all(dt.detail, "..", "ꓸꓸ", allocator = context.temp_allocator)
- dt.detail = s
- }
+ if common.config.client_name == "Sublime Text LSP" {
+ dt := &item.labelDetails.? or_else nil
+ if dt == nil do continue
+ if strings.contains(dt.detail, "..") &&
+ strings.contains(dt.detail, "#") {
+ s, _ := strings.replace_all(
+ dt.detail,
+ "..",
+ "ꓸꓸ",
+ allocator = context.temp_allocator,
+ )
+ dt.detail = s
+ }
+ }
}
}
diff --git a/src/server/requests.odin b/src/server/requests.odin
index 0874b7f..22cba7a 100644
--- a/src/server/requests.odin
+++ b/src/server/requests.odin
@@ -508,6 +508,7 @@ request_initialize :: proc(
return .ParseError
}
+ config.client_name = initialize_params.clientInfo.name
config.workspace_folders = make([dynamic]common.WorkspaceFolder)
for s in initialize_params.workspaceFolders {
@@ -659,12 +660,8 @@ request_initialize :: proc(
signatureTriggerCharacters := []string{"(", ","}
signatureRetriggerCharacters := []string{","}
- token_type := type_info_of(
- SemanticTokenTypes,
- ).variant.(runtime.Type_Info_Named).base.variant.(runtime.Type_Info_Enum)
- token_modifier := type_info_of(
- SemanticTokenModifiers,
- ).variant.(runtime.Type_Info_Named).base.variant.(runtime.Type_Info_Enum)
+ token_type := type_info_of(SemanticTokenTypes).variant.(runtime.Type_Info_Named).base.variant.(runtime.Type_Info_Enum)
+ token_modifier := type_info_of(SemanticTokenModifiers).variant.(runtime.Type_Info_Named).base.variant.(runtime.Type_Info_Enum)
token_types := make(
[]string,
diff --git a/src/server/types.odin b/src/server/types.odin
index 31a388e..42e9699 100644
--- a/src/server/types.odin
+++ b/src/server/types.odin
@@ -80,6 +80,11 @@ RequestInitializeParams :: struct {
capabilities: ClientCapabilities,
rootUri: string,
initializationOptions: OlsConfig,
+ clientInfo: ClientInfo,
+}
+
+ClientInfo :: struct {
+ name: string,
}
MarkupContent :: struct {
@@ -490,4 +495,3 @@ WorkspaceSymbol :: struct {
DidChangeConfigurationParams :: struct {
settings: OlsConfig,
}
-