aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2025-05-29 20:24:59 +0200
committerDanielGavin <danielgavin5@hotmail.com>2025-05-29 20:24:59 +0200
commitdba39a1e8420eacb60719e02d9a2fcfd3cb5f537 (patch)
tree5760d7bf3569e84b69a0797db8ed33f6712bdb6d /src/server
parent83dec1712fc5f62cfd4f3b0c0d093b483bf0742b (diff)
Remember to check if the client has dynamic registration for change watched files.
Diffstat (limited to 'src/server')
-rw-r--r--src/server/requests.odin4
-rw-r--r--src/server/types.odin10
2 files changed, 13 insertions, 1 deletions
diff --git a/src/server/requests.odin b/src/server/requests.odin
index 84bb405..d5a3481 100644
--- a/src/server/requests.odin
+++ b/src/server/requests.odin
@@ -725,7 +725,9 @@ request_initialize :: proc(
try_build_package(pkg)
}
- register_dynamic_capabilities(writer)
+ if initialize_params.capabilities.workspace.didChangeWatchedFiles.dynamicRegistration {
+ register_dynamic_capabilities(writer)
+ }
return .None
}
diff --git a/src/server/types.odin b/src/server/types.odin
index c9107ff..4a4ef8f 100644
--- a/src/server/types.odin
+++ b/src/server/types.odin
@@ -213,8 +213,18 @@ ParameterInformationCapabilities :: struct {
ClientCapabilities :: struct {
textDocument: TextDocumentClientCapabilities,
general: GeneralClientCapabilities,
+ workspace: WorkspaceCapabilities,
}
+WorkspaceCapabilities :: struct {
+ didChangeWatchedFiles: DidChangeWatchedFilesClientCapabilities,
+}
+
+DidChangeWatchedFilesClientCapabilities :: struct {
+ dynamicRegistration: bool,
+}
+
+
RangeOptional :: union {
common.Range,
}