summaryrefslogtreecommitdiff
path: root/test_util/src
diff options
context:
space:
mode:
Diffstat (limited to 'test_util/src')
-rw-r--r--test_util/src/lsp.rs18
1 files changed, 15 insertions, 3 deletions
diff --git a/test_util/src/lsp.rs b/test_util/src/lsp.rs
index 8a1f24b32..5369d6361 100644
--- a/test_util/src/lsp.rs
+++ b/test_util/src/lsp.rs
@@ -591,6 +591,7 @@ impl LspClientBuilder {
writer,
deno_dir,
stderr_lines_rx,
+ supports_workspace_configuration: false,
})
}
}
@@ -604,6 +605,7 @@ pub struct LspClient {
deno_dir: TempDir,
context: TestContext,
stderr_lines_rx: Option<mpsc::Receiver<String>>,
+ supports_workspace_configuration: bool,
}
impl Drop for LspClient {
@@ -689,9 +691,17 @@ impl LspClient {
let mut builder = InitializeParamsBuilder::new();
builder.set_root_uri(self.context.temp_dir().uri());
do_build(&mut builder);
- self.write_request("initialize", builder.build());
+ let params: InitializeParams = builder.build();
+ self.supports_workspace_configuration = match &params.capabilities.workspace
+ {
+ Some(workspace) => workspace.configuration == Some(true),
+ _ => false,
+ };
+ self.write_request("initialize", params);
self.write_notification("initialized", json!({}));
- self.handle_configuration_request(config);
+ if self.supports_workspace_configuration {
+ self.handle_configuration_request(config);
+ }
}
pub fn did_open(&mut self, params: Value) -> CollectedDiagnostics {
@@ -712,7 +722,9 @@ impl LspClient {
config: Value,
) -> CollectedDiagnostics {
self.did_open_raw(params);
- self.handle_configuration_request(config);
+ if self.supports_workspace_configuration {
+ self.handle_configuration_request(config);
+ }
self.read_diagnostics()
}