aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2023-06-26 13:48:34 +0200
committerDanielGavin <danielgavin5@hotmail.com>2023-06-26 13:48:34 +0200
commitdf856c55a336dc7e425671eb96568f791e8c079b (patch)
tree9c81f6a6d0fa11cb519e100e00ab6c95e805e2b7 /src/server
parent44a6fd023c06a784b6e552c27c422750486580f4 (diff)
Finish didChangeConfiguration
Diffstat (limited to 'src/server')
-rw-r--r--src/server/requests.odin85
1 files changed, 39 insertions, 46 deletions
diff --git a/src/server/requests.odin b/src/server/requests.odin
index 1df165a..6cbcb2c 100644
--- a/src/server/requests.odin
+++ b/src/server/requests.odin
@@ -278,7 +278,7 @@ call_map: map[string]proc(
"textDocument/references" = request_references,
"window/progress" = request_noop,
"workspace/symbol" = request_workspace_symbols,
- "workspace/didChangeConfiguration" = request_workspace_didChangeConfiguration,
+ "workspace/didChangeConfiguration" = notification_workspace_did_change_configuration,
}
notification_map: map[string]bool = {
@@ -398,6 +398,42 @@ call :: proc(
//log.errorf("time duration %v for %v", time.duration_milliseconds(diff), method)
}
+read_ols_initialize_options :: proc(
+ config: ^common.Config,
+ ols_config: OlsConfig,
+) {
+ config.disable_parser_errors =
+ ols_config.disable_parser_errors.(bool) or_else config.disable_parser_errors
+ config.thread_count =
+ ols_config.thread_pool_count.(int) or_else config.thread_count
+ config.enable_document_symbols =
+ ols_config.enable_document_symbols.(bool) or_else config.enable_document_symbols
+ config.enable_hover =
+ ols_config.enable_hover.(bool) or_else config.enable_hover
+ config.enable_semantic_tokens =
+ ols_config.enable_semantic_tokens.(bool) or_else config.enable_semantic_tokens
+ config.enable_procedure_context =
+ ols_config.enable_procedure_context.(bool) or_else config.enable_procedure_context
+ config.enable_snippets =
+ ols_config.enable_snippets.(bool) or_else config.enable_snippets
+ config.enable_references =
+ ols_config.enable_references.(bool) or_else config.enable_references
+ config.verbose = ols_config.verbose.(bool) or_else config.verbose
+ config.file_log = ols_config.file_log.(bool) or_else config.file_log
+ config.enable_rename =
+ ols_config.enable_references.(bool) or_else config.enable_rename
+ config.odin_command = strings.clone(
+ ols_config.odin_command.(string) or_else config.odin_command,
+ context.allocator,
+ )
+ config.checker_args = strings.clone(
+ ols_config.checker_args.(string) or_else config.checker_args,
+ context.allocator,
+ )
+ config.enable_inlay_hints =
+ ols_config.enable_inlay_hints.(bool) or_else config.enable_inlay_hints
+}
+
request_initialize :: proc(
params: json.Value,
id: RequestId,
@@ -424,42 +460,6 @@ request_initialize :: proc(
append(&config.workspace_folders, workspace)
}
- read_ols_initialize_options :: proc(
- config: ^common.Config,
- ols_config: OlsConfig,
- ) {
- config.disable_parser_errors =
- ols_config.disable_parser_errors.(bool) or_else config.disable_parser_errors
- config.thread_count =
- ols_config.thread_pool_count.(int) or_else config.thread_count
- config.enable_document_symbols =
- ols_config.enable_document_symbols.(bool) or_else config.enable_document_symbols
- config.enable_hover =
- ols_config.enable_hover.(bool) or_else config.enable_hover
- config.enable_semantic_tokens =
- ols_config.enable_semantic_tokens.(bool) or_else config.enable_semantic_tokens
- config.enable_procedure_context =
- ols_config.enable_procedure_context.(bool) or_else config.enable_procedure_context
- config.enable_snippets =
- ols_config.enable_snippets.(bool) or_else config.enable_snippets
- config.enable_references =
- ols_config.enable_references.(bool) or_else config.enable_references
- config.verbose = ols_config.verbose.(bool) or_else config.verbose
- config.file_log = ols_config.file_log.(bool) or_else config.file_log
- config.enable_rename =
- ols_config.enable_references.(bool) or_else config.enable_rename
- config.odin_command = strings.clone(
- ols_config.odin_command.(string) or_else config.odin_command,
- context.allocator,
- )
- config.checker_args = strings.clone(
- ols_config.checker_args.(string) or_else config.checker_args,
- context.allocator,
- )
- config.enable_inlay_hints =
- ols_config.enable_inlay_hints.(bool) or_else config.enable_inlay_hints
- }
-
read_ols_config :: proc(
file: string,
config: ^common.Config,
@@ -1434,7 +1434,7 @@ request_references :: proc(
return .None
}
-request_workspace_didChangeConfiguration :: proc(
+notification_workspace_did_change_configuration :: proc(
params: json.Value,
id: RequestId,
config: ^common.Config,
@@ -1455,14 +1455,7 @@ request_workspace_didChangeConfiguration :: proc(
ols_config := workspace_config_params.settings
- config.enable_semantic_tokens = ols_config.enable_semantic_tokens.? or_else true
- config.enable_document_symbols = ols_config.enable_document_symbols.? or_else true
- config.enable_hover = ols_config.enable_hover.? or_else true
- config.enable_snippets = ols_config.enable_snippets.? or_else true
-
- for conf in ols_config.collections {
- config.collections[strings.clone(conf.name)] = strings.clone(conf.path)
- }
+ read_ols_initialize_options(config, ols_config)
return .None
}