aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock4
-rw-r--r--crates/rust-analyzer/Cargo.toml2
-rw-r--r--crates/rust-analyzer/src/caps.rs3
-rw-r--r--crates/rust-analyzer/src/config.rs10
-rw-r--r--crates/rust-analyzer/src/diagnostics/test_data/clippy_pass_by_ref.txt2
-rw-r--r--crates/rust-analyzer/src/diagnostics/test_data/handles_macro_location.txt2
-rw-r--r--crates/rust-analyzer/src/diagnostics/test_data/macro_compiler_error.txt4
-rw-r--r--crates/rust-analyzer/src/diagnostics/test_data/rustc_incompatible_type_for_trait.txt2
-rw-r--r--crates/rust-analyzer/src/diagnostics/test_data/rustc_mismatched_type.txt2
-rw-r--r--crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable.txt2
-rw-r--r--crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_hint.txt2
-rw-r--r--crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_info.txt2
-rw-r--r--crates/rust-analyzer/src/diagnostics/test_data/rustc_wrong_number_of_parameters.txt2
-rw-r--r--crates/rust-analyzer/src/diagnostics/test_data/snap_multi_line_fix.txt2
-rw-r--r--crates/rust-analyzer/src/diagnostics/to_proto.rs4
-rw-r--r--crates/rust-analyzer/src/handlers.rs2
-rw-r--r--crates/rust-analyzer/src/main_loop.rs6
-rw-r--r--crates/rust-analyzer/src/to_proto.rs11
-rw-r--r--editors/code/package-lock.json30
-rw-r--r--editors/code/package.json2
-rw-r--r--editors/code/src/util.ts5
21 files changed, 77 insertions, 24 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 5c7bcb17b..fe211b9b3 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -852,9 +852,9 @@ dependencies = [
852 852
853[[package]] 853[[package]]
854name = "lsp-types" 854name = "lsp-types"
855version = "0.82.0" 855version = "0.83.0"
856source = "registry+https://github.com/rust-lang/crates.io-index" 856source = "registry+https://github.com/rust-lang/crates.io-index"
857checksum = "db895abb8527cf59e3de893ab2acf52cf904faeb65e60ea6f373e11fe86464e8" 857checksum = "25e0bd4b95038f2c23bda332ba0ca684e8dda765db1f9bdb63dc4c3e01f3b456"
858dependencies = [ 858dependencies = [
859 "base64", 859 "base64",
860 "bitflags", 860 "bitflags",
diff --git a/crates/rust-analyzer/Cargo.toml b/crates/rust-analyzer/Cargo.toml
index 975b24aaf..d25c4bf83 100644
--- a/crates/rust-analyzer/Cargo.toml
+++ b/crates/rust-analyzer/Cargo.toml
@@ -21,7 +21,7 @@ env_logger = { version = "0.8.1", default-features = false }
21itertools = "0.9.0" 21itertools = "0.9.0"
22jod-thread = "0.1.0" 22jod-thread = "0.1.0"
23log = "0.4.8" 23log = "0.4.8"
24lsp-types = { version = "0.82.0", features = ["proposed"] } 24lsp-types = { version = "0.83.0", features = ["proposed"] }
25parking_lot = "0.11.0" 25parking_lot = "0.11.0"
26pico-args = "0.3.1" 26pico-args = "0.3.1"
27oorandom = "11.1.2" 27oorandom = "11.1.2"
diff --git a/crates/rust-analyzer/src/caps.rs b/crates/rust-analyzer/src/caps.rs
index c589afeaf..ff1ae9575 100644
--- a/crates/rust-analyzer/src/caps.rs
+++ b/crates/rust-analyzer/src/caps.rs
@@ -48,7 +48,7 @@ pub fn server_capabilities(client_caps: &ClientCapabilities) -> ServerCapabiliti
48 references_provider: Some(OneOf::Left(true)), 48 references_provider: Some(OneOf::Left(true)),
49 document_highlight_provider: Some(OneOf::Left(true)), 49 document_highlight_provider: Some(OneOf::Left(true)),
50 document_symbol_provider: Some(OneOf::Left(true)), 50 document_symbol_provider: Some(OneOf::Left(true)),
51 workspace_symbol_provider: Some(true), 51 workspace_symbol_provider: Some(OneOf::Left(true)),
52 code_action_provider: Some(code_action_provider), 52 code_action_provider: Some(code_action_provider),
53 code_lens_provider: Some(CodeLensOptions { resolve_provider: Some(true) }), 53 code_lens_provider: Some(CodeLensOptions { resolve_provider: Some(true) }),
54 document_formatting_provider: Some(OneOf::Left(true)), 54 document_formatting_provider: Some(OneOf::Left(true)),
@@ -113,6 +113,7 @@ fn code_action_capabilities(client_caps: &ClientCapabilities) -> CodeActionProvi
113 CodeActionKind::REFACTOR_INLINE, 113 CodeActionKind::REFACTOR_INLINE,
114 CodeActionKind::REFACTOR_REWRITE, 114 CodeActionKind::REFACTOR_REWRITE,
115 ]), 115 ]),
116 resolve_provider: None,
116 work_done_progress_options: Default::default(), 117 work_done_progress_options: Default::default(),
117 }) 118 })
118 }) 119 })
diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs
index 1b9b24698..2ed6a0d82 100644
--- a/crates/rust-analyzer/src/config.rs
+++ b/crates/rust-analyzer/src/config.rs
@@ -47,6 +47,7 @@ pub struct Config {
47 pub call_info_full: bool, 47 pub call_info_full: bool,
48 pub lens: LensConfig, 48 pub lens: LensConfig,
49 pub hover: HoverConfig, 49 pub hover: HoverConfig,
50 pub semantic_tokens_refresh: bool,
50 51
51 pub with_sysroot: bool, 52 pub with_sysroot: bool,
52 pub linked_projects: Vec<LinkedProject>, 53 pub linked_projects: Vec<LinkedProject>,
@@ -193,6 +194,7 @@ impl Config {
193 call_info_full: true, 194 call_info_full: true,
194 lens: LensConfig::default(), 195 lens: LensConfig::default(),
195 hover: HoverConfig::default(), 196 hover: HoverConfig::default(),
197 semantic_tokens_refresh: false,
196 linked_projects: Vec::new(), 198 linked_projects: Vec::new(),
197 root_path, 199 root_path,
198 } 200 }
@@ -402,6 +404,14 @@ impl Config {
402 self.client_caps.hover_actions = get_bool("hoverActions"); 404 self.client_caps.hover_actions = get_bool("hoverActions");
403 self.client_caps.status_notification = get_bool("statusNotification"); 405 self.client_caps.status_notification = get_bool("statusNotification");
404 } 406 }
407
408 if let Some(workspace_caps) = caps.workspace.as_ref() {
409 if let Some(refresh_support) =
410 workspace_caps.semantic_tokens.as_ref().and_then(|it| it.refresh_support)
411 {
412 self.semantic_tokens_refresh = refresh_support;
413 }
414 }
405 } 415 }
406} 416}
407 417
diff --git a/crates/rust-analyzer/src/diagnostics/test_data/clippy_pass_by_ref.txt b/crates/rust-analyzer/src/diagnostics/test_data/clippy_pass_by_ref.txt
index d06517126..58d47d32a 100644
--- a/crates/rust-analyzer/src/diagnostics/test_data/clippy_pass_by_ref.txt
+++ b/crates/rust-analyzer/src/diagnostics/test_data/clippy_pass_by_ref.txt
@@ -20,6 +20,7 @@
20 "trivially_copy_pass_by_ref", 20 "trivially_copy_pass_by_ref",
21 ), 21 ),
22 ), 22 ),
23 code_description: None,
23 source: Some( 24 source: Some(
24 "clippy", 25 "clippy",
25 ), 26 ),
@@ -61,6 +62,7 @@
61 ], 62 ],
62 ), 63 ),
63 tags: None, 64 tags: None,
65 data: None,
64 }, 66 },
65 fixes: [], 67 fixes: [],
66 }, 68 },
diff --git a/crates/rust-analyzer/src/diagnostics/test_data/handles_macro_location.txt b/crates/rust-analyzer/src/diagnostics/test_data/handles_macro_location.txt
index f5de2f07f..6aa26bf63 100644
--- a/crates/rust-analyzer/src/diagnostics/test_data/handles_macro_location.txt
+++ b/crates/rust-analyzer/src/diagnostics/test_data/handles_macro_location.txt
@@ -20,12 +20,14 @@
20 "E0277", 20 "E0277",
21 ), 21 ),
22 ), 22 ),
23 code_description: None,
23 source: Some( 24 source: Some(
24 "rustc", 25 "rustc",
25 ), 26 ),
26 message: "can\'t compare `{integer}` with `&str`\nthe trait `std::cmp::PartialEq<&str>` is not implemented for `{integer}`", 27 message: "can\'t compare `{integer}` with `&str`\nthe trait `std::cmp::PartialEq<&str>` is not implemented for `{integer}`",
27 related_information: None, 28 related_information: None,
28 tags: None, 29 tags: None,
30 data: None,
29 }, 31 },
30 fixes: [], 32 fixes: [],
31 }, 33 },
diff --git a/crates/rust-analyzer/src/diagnostics/test_data/macro_compiler_error.txt b/crates/rust-analyzer/src/diagnostics/test_data/macro_compiler_error.txt
index 00e8da8a7..7aaffaba2 100644
--- a/crates/rust-analyzer/src/diagnostics/test_data/macro_compiler_error.txt
+++ b/crates/rust-analyzer/src/diagnostics/test_data/macro_compiler_error.txt
@@ -16,6 +16,7 @@
16 Error, 16 Error,
17 ), 17 ),
18 code: None, 18 code: None,
19 code_description: None,
19 source: Some( 20 source: Some(
20 "rustc", 21 "rustc",
21 ), 22 ),
@@ -41,6 +42,7 @@
41 ], 42 ],
42 ), 43 ),
43 tags: None, 44 tags: None,
45 data: None,
44 }, 46 },
45 fixes: [], 47 fixes: [],
46 }, 48 },
@@ -61,6 +63,7 @@
61 Error, 63 Error,
62 ), 64 ),
63 code: None, 65 code: None,
66 code_description: None,
64 source: Some( 67 source: Some(
65 "rustc", 68 "rustc",
66 ), 69 ),
@@ -86,6 +89,7 @@
86 ], 89 ],
87 ), 90 ),
88 tags: None, 91 tags: None,
92 data: None,
89 }, 93 },
90 fixes: [], 94 fixes: [],
91 }, 95 },
diff --git a/crates/rust-analyzer/src/diagnostics/test_data/rustc_incompatible_type_for_trait.txt b/crates/rust-analyzer/src/diagnostics/test_data/rustc_incompatible_type_for_trait.txt
index fc54440be..584213420 100644
--- a/crates/rust-analyzer/src/diagnostics/test_data/rustc_incompatible_type_for_trait.txt
+++ b/crates/rust-analyzer/src/diagnostics/test_data/rustc_incompatible_type_for_trait.txt
@@ -20,12 +20,14 @@
20 "E0053", 20 "E0053",
21 ), 21 ),
22 ), 22 ),
23 code_description: None,
23 source: Some( 24 source: Some(
24 "rustc", 25 "rustc",
25 ), 26 ),
26 message: "method `next` has an incompatible type for trait\nexpected type `fn(&mut ty::list_iter::ListIterator<\'list, M>) -> std::option::Option<&ty::Ref<M>>`\n found type `fn(&ty::list_iter::ListIterator<\'list, M>) -> std::option::Option<&\'list ty::Ref<M>>`", 27 message: "method `next` has an incompatible type for trait\nexpected type `fn(&mut ty::list_iter::ListIterator<\'list, M>) -> std::option::Option<&ty::Ref<M>>`\n found type `fn(&ty::list_iter::ListIterator<\'list, M>) -> std::option::Option<&\'list ty::Ref<M>>`",
27 related_information: None, 28 related_information: None,
28 tags: None, 29 tags: None,
30 data: None,
29 }, 31 },
30 fixes: [], 32 fixes: [],
31 }, 33 },
diff --git a/crates/rust-analyzer/src/diagnostics/test_data/rustc_mismatched_type.txt b/crates/rust-analyzer/src/diagnostics/test_data/rustc_mismatched_type.txt
index c269af218..2610e4e20 100644
--- a/crates/rust-analyzer/src/diagnostics/test_data/rustc_mismatched_type.txt
+++ b/crates/rust-analyzer/src/diagnostics/test_data/rustc_mismatched_type.txt
@@ -20,12 +20,14 @@
20 "E0308", 20 "E0308",
21 ), 21 ),
22 ), 22 ),
23 code_description: None,
23 source: Some( 24 source: Some(
24 "rustc", 25 "rustc",
25 ), 26 ),
26 message: "mismatched types\nexpected usize, found u32", 27 message: "mismatched types\nexpected usize, found u32",
27 related_information: None, 28 related_information: None,
28 tags: None, 29 tags: None,
30 data: None,
29 }, 31 },
30 fixes: [], 32 fixes: [],
31 }, 33 },
diff --git a/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable.txt b/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable.txt
index 74d91bc77..8dc53391e 100644
--- a/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable.txt
+++ b/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable.txt
@@ -20,6 +20,7 @@
20 "unused_variables", 20 "unused_variables",
21 ), 21 ),
22 ), 22 ),
23 code_description: None,
23 source: Some( 24 source: Some(
24 "rustc", 25 "rustc",
25 ), 26 ),
@@ -30,6 +31,7 @@
30 Unnecessary, 31 Unnecessary,
31 ], 32 ],
32 ), 33 ),
34 data: None,
33 }, 35 },
34 fixes: [ 36 fixes: [
35 CodeAction { 37 CodeAction {
diff --git a/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_hint.txt b/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_hint.txt
index 8a420c949..c8703194c 100644
--- a/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_hint.txt
+++ b/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_hint.txt
@@ -20,6 +20,7 @@
20 "unused_variables", 20 "unused_variables",
21 ), 21 ),
22 ), 22 ),
23 code_description: None,
23 source: Some( 24 source: Some(
24 "rustc", 25 "rustc",
25 ), 26 ),
@@ -30,6 +31,7 @@
30 Unnecessary, 31 Unnecessary,
31 ], 32 ],
32 ), 33 ),
34 data: None,
33 }, 35 },
34 fixes: [ 36 fixes: [
35 CodeAction { 37 CodeAction {
diff --git a/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_info.txt b/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_info.txt
index 79910660b..dc93227ad 100644
--- a/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_info.txt
+++ b/crates/rust-analyzer/src/diagnostics/test_data/rustc_unused_variable_as_info.txt
@@ -20,6 +20,7 @@
20 "unused_variables", 20 "unused_variables",
21 ), 21 ),
22 ), 22 ),
23 code_description: None,
23 source: Some( 24 source: Some(
24 "rustc", 25 "rustc",
25 ), 26 ),
@@ -30,6 +31,7 @@
30 Unnecessary, 31 Unnecessary,
31 ], 32 ],
32 ), 33 ),
34 data: None,
33 }, 35 },
34 fixes: [ 36 fixes: [
35 CodeAction { 37 CodeAction {
diff --git a/crates/rust-analyzer/src/diagnostics/test_data/rustc_wrong_number_of_parameters.txt b/crates/rust-analyzer/src/diagnostics/test_data/rustc_wrong_number_of_parameters.txt
index efe37261d..ba1b98b33 100644
--- a/crates/rust-analyzer/src/diagnostics/test_data/rustc_wrong_number_of_parameters.txt
+++ b/crates/rust-analyzer/src/diagnostics/test_data/rustc_wrong_number_of_parameters.txt
@@ -20,6 +20,7 @@
20 "E0061", 20 "E0061",
21 ), 21 ),
22 ), 22 ),
23 code_description: None,
23 source: Some( 24 source: Some(
24 "rustc", 25 "rustc",
25 ), 26 ),
@@ -45,6 +46,7 @@
45 ], 46 ],
46 ), 47 ),
47 tags: None, 48 tags: None,
49 data: None,
48 }, 50 },
49 fixes: [], 51 fixes: [],
50 }, 52 },
diff --git a/crates/rust-analyzer/src/diagnostics/test_data/snap_multi_line_fix.txt b/crates/rust-analyzer/src/diagnostics/test_data/snap_multi_line_fix.txt
index 4f811ab64..81f752672 100644
--- a/crates/rust-analyzer/src/diagnostics/test_data/snap_multi_line_fix.txt
+++ b/crates/rust-analyzer/src/diagnostics/test_data/snap_multi_line_fix.txt
@@ -20,6 +20,7 @@
20 "let_and_return", 20 "let_and_return",
21 ), 21 ),
22 ), 22 ),
23 code_description: None,
23 source: Some( 24 source: Some(
24 "clippy", 25 "clippy",
25 ), 26 ),
@@ -45,6 +46,7 @@
45 ], 46 ],
46 ), 47 ),
47 tags: None, 48 tags: None,
49 data: None,
48 }, 50 },
49 fixes: [ 51 fixes: [
50 CodeAction { 52 CodeAction {
diff --git a/crates/rust-analyzer/src/diagnostics/to_proto.rs b/crates/rust-analyzer/src/diagnostics/to_proto.rs
index 33606edda..b949577c1 100644
--- a/crates/rust-analyzer/src/diagnostics/to_proto.rs
+++ b/crates/rust-analyzer/src/diagnostics/to_proto.rs
@@ -248,10 +248,12 @@ pub(crate) fn map_rust_diagnostic_to_lsp(
248 range: in_macro_location.range, 248 range: in_macro_location.range,
249 severity, 249 severity,
250 code: code.clone().map(lsp_types::NumberOrString::String), 250 code: code.clone().map(lsp_types::NumberOrString::String),
251 code_description: None,
251 source: Some(source.clone()), 252 source: Some(source.clone()),
252 message: message.clone(), 253 message: message.clone(),
253 related_information: Some(information_for_additional_diagnostic), 254 related_information: Some(information_for_additional_diagnostic),
254 tags: if tags.is_empty() { None } else { Some(tags.clone()) }, 255 tags: if tags.is_empty() { None } else { Some(tags.clone()) },
256 data: None,
255 }; 257 };
256 258
257 Some(MappedRustDiagnostic { 259 Some(MappedRustDiagnostic {
@@ -267,6 +269,7 @@ pub(crate) fn map_rust_diagnostic_to_lsp(
267 range: location.range, 269 range: location.range,
268 severity, 270 severity,
269 code: code.clone().map(lsp_types::NumberOrString::String), 271 code: code.clone().map(lsp_types::NumberOrString::String),
272 code_description: None,
270 source: Some(source.clone()), 273 source: Some(source.clone()),
271 message, 274 message,
272 related_information: if related_information.is_empty() { 275 related_information: if related_information.is_empty() {
@@ -275,6 +278,7 @@ pub(crate) fn map_rust_diagnostic_to_lsp(
275 Some(related_information.clone()) 278 Some(related_information.clone())
276 }, 279 },
277 tags: if tags.is_empty() { None } else { Some(tags.clone()) }, 280 tags: if tags.is_empty() { None } else { Some(tags.clone()) },
281 data: None,
278 }; 282 };
279 283
280 let main_diagnostic = 284 let main_diagnostic =
diff --git a/crates/rust-analyzer/src/handlers.rs b/crates/rust-analyzer/src/handlers.rs
index 2680e5f08..049c583a4 100644
--- a/crates/rust-analyzer/src/handlers.rs
+++ b/crates/rust-analyzer/src/handlers.rs
@@ -1121,10 +1121,12 @@ pub(crate) fn publish_diagnostics(
1121 range: to_proto::range(&line_index, d.range), 1121 range: to_proto::range(&line_index, d.range),
1122 severity: Some(to_proto::diagnostic_severity(d.severity)), 1122 severity: Some(to_proto::diagnostic_severity(d.severity)),
1123 code: None, 1123 code: None,
1124 code_description: None,
1124 source: Some("rust-analyzer".to_string()), 1125 source: Some("rust-analyzer".to_string()),
1125 message: d.message, 1126 message: d.message,
1126 related_information: None, 1127 related_information: None,
1127 tags: if d.unused { Some(vec![DiagnosticTag::Unnecessary]) } else { None }, 1128 tags: if d.unused { Some(vec![DiagnosticTag::Unnecessary]) } else { None },
1129 data: None,
1128 }) 1130 })
1129 .collect(); 1131 .collect();
1130 Ok(diagnostics) 1132 Ok(diagnostics)
diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs
index ed5292733..ff855fe1a 100644
--- a/crates/rust-analyzer/src/main_loop.rs
+++ b/crates/rust-analyzer/src/main_loop.rs
@@ -330,6 +330,12 @@ impl GlobalState {
330 .collect::<Vec<_>>(); 330 .collect::<Vec<_>>();
331 331
332 self.update_file_notifications_on_threadpool(subscriptions); 332 self.update_file_notifications_on_threadpool(subscriptions);
333
334 // Refresh semantic tokens if the client supports it.
335 if self.config.semantic_tokens_refresh {
336 self.semantic_tokens_cache.lock().clear();
337 self.send_request::<lsp_types::request::SemanticTokensRefesh>((), |_, _| ());
338 }
333 } 339 }
334 340
335 if let Some(diagnostic_changes) = self.diagnostics.take_changes() { 341 if let Some(diagnostic_changes) = self.diagnostics.take_changes() {
diff --git a/crates/rust-analyzer/src/to_proto.rs b/crates/rust-analyzer/src/to_proto.rs
index 24a658fc6..92b7c7b68 100644
--- a/crates/rust-analyzer/src/to_proto.rs
+++ b/crates/rust-analyzer/src/to_proto.rs
@@ -709,7 +709,16 @@ pub(crate) fn call_hierarchy_item(
709 let detail = target.description.clone(); 709 let detail = target.description.clone();
710 let kind = symbol_kind(target.kind); 710 let kind = symbol_kind(target.kind);
711 let (uri, range, selection_range) = location_info(snap, target)?; 711 let (uri, range, selection_range) = location_info(snap, target)?;
712 Ok(lsp_types::CallHierarchyItem { name, kind, tags: None, detail, uri, range, selection_range }) 712 Ok(lsp_types::CallHierarchyItem {
713 name,
714 kind,
715 tags: None,
716 detail,
717 uri,
718 range,
719 selection_range,
720 data: None,
721 })
713} 722}
714 723
715pub(crate) fn code_action_kind(kind: AssistKind) -> lsp_types::CodeActionKind { 724pub(crate) fn code_action_kind(kind: AssistKind) -> lsp_types::CodeActionKind {
diff --git a/editors/code/package-lock.json b/editors/code/package-lock.json
index 33d60d4dd..83ef00058 100644
--- a/editors/code/package-lock.json
+++ b/editors/code/package-lock.json
@@ -2409,32 +2409,32 @@
2409 } 2409 }
2410 }, 2410 },
2411 "vscode-jsonrpc": { 2411 "vscode-jsonrpc": {
2412 "version": "6.0.0-next.5", 2412 "version": "6.0.0-next.7",
2413 "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0-next.5.tgz", 2413 "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0-next.7.tgz",
2414 "integrity": "sha512-IAgsltQPwg/pXOPsdXgbUTCaO9VSKZwirZN5SGtkdYQ/R3VjeC4v00WTVvoNayWMZpoC3O9u0ogqmsKzKhVasQ==" 2414 "integrity": "sha512-1nG+6cuTtpzmXe7yYfO9GCkYlyV6Ai+jDnwidHiT2T7zhc+bJM+VTtc0T/CdTlDyTNTqIcCj0V1nD4TcVjJ7Ug=="
2415 }, 2415 },
2416 "vscode-languageclient": { 2416 "vscode-languageclient": {
2417 "version": "7.0.0-next.9", 2417 "version": "7.0.0-next.12",
2418 "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0-next.9.tgz", 2418 "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0-next.12.tgz",
2419 "integrity": "sha512-lFO+rN/i72CM2va6iKXq1lD7pJg8J93KEXf0w0boWVqU+DJhWzLrV3pXl8Xk1nCv//qOAyhlc/nx2KZCTeRF/A==", 2419 "integrity": "sha512-OrzvOvhS5o26C0KctTJC7hkwh3avCwkVhllzy42AqwpIUZ3p2aVqkSG2uVxaeodq8ThBb3TLgtg50vxyWs6FEg==",
2420 "requires": { 2420 "requires": {
2421 "semver": "^6.3.0", 2421 "semver": "^6.3.0",
2422 "vscode-languageserver-protocol": "3.16.0-next.7" 2422 "vscode-languageserver-protocol": "3.16.0-next.10"
2423 } 2423 }
2424 }, 2424 },
2425 "vscode-languageserver-protocol": { 2425 "vscode-languageserver-protocol": {
2426 "version": "3.16.0-next.7", 2426 "version": "3.16.0-next.10",
2427 "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0-next.7.tgz", 2427 "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0-next.10.tgz",
2428 "integrity": "sha512-tOjrg+K3RddJ547zpC9/LAgTbzadkPuHlqJFFWIcKjVhiJOh73XyY+Ngcu9wukGaTsuSGjJ0W8rlmwanixa0FQ==", 2428 "integrity": "sha512-YRTctHUZvts0Z1xXKNYU0ha0o+Tlgtwr+6O8OmDquM086N8exiSKBMwMC+Ra1QtIE+1mfW43Wxsme2FnMkAS9A==",
2429 "requires": { 2429 "requires": {
2430 "vscode-jsonrpc": "6.0.0-next.5", 2430 "vscode-jsonrpc": "6.0.0-next.7",
2431 "vscode-languageserver-types": "3.16.0-next.3" 2431 "vscode-languageserver-types": "3.16.0-next.4"
2432 } 2432 }
2433 }, 2433 },
2434 "vscode-languageserver-types": { 2434 "vscode-languageserver-types": {
2435 "version": "3.16.0-next.3", 2435 "version": "3.16.0-next.4",
2436 "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.3.tgz", 2436 "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.4.tgz",
2437 "integrity": "sha512-s/z5ZqSe7VpoXJ6JQcvwRiPPA3nG0nAcJ/HH03zoU6QaFfnkcgPK+HshC3WKPPnC2G08xA0iRB6h7kmyBB5Adg==" 2437 "integrity": "sha512-NlKJyGcET/ZBCCLBYIPaGo2c37R03bPYeWXozUtnjyye7+9dhlbMSODyoG2INcQf8zFmB4qhm2UOJjgYEgPCNA=="
2438 }, 2438 },
2439 "vscode-test": { 2439 "vscode-test": {
2440 "version": "1.4.0", 2440 "version": "1.4.0",
diff --git a/editors/code/package.json b/editors/code/package.json
index af845d7bc..eccafccdd 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -36,7 +36,7 @@
36 }, 36 },
37 "dependencies": { 37 "dependencies": {
38 "node-fetch": "^2.6.1", 38 "node-fetch": "^2.6.1",
39 "vscode-languageclient": "7.0.0-next.9" 39 "vscode-languageclient": "7.0.0-next.12"
40 }, 40 },
41 "devDependencies": { 41 "devDependencies": {
42 "@rollup/plugin-commonjs": "^13.0.2", 42 "@rollup/plugin-commonjs": "^13.0.2",
diff --git a/editors/code/src/util.ts b/editors/code/src/util.ts
index 08159b43c..53492a445 100644
--- a/editors/code/src/util.ts
+++ b/editors/code/src/util.ts
@@ -75,12 +75,11 @@ export async function sendRequestWithRetry<TParam, TRet>(
75 log.warn("LSP request timed out", { method: reqType.method, param, error }); 75 log.warn("LSP request timed out", { method: reqType.method, param, error });
76 throw error; 76 throw error;
77 } 77 }
78 78 if (error.code === lc.LSPErrorCodes.RequestCancelled) {
79 if (error.code === lc.ErrorCodes.RequestCancelled) {
80 throw error; 79 throw error;
81 } 80 }
82 81
83 if (error.code !== lc.ErrorCodes.ContentModified) { 82 if (error.code !== lc.LSPErrorCodes.ContentModified) {
84 log.warn("LSP request failed", { method: reqType.method, param, error }); 83 log.warn("LSP request failed", { method: reqType.method, param, error });
85 throw error; 84 throw error;
86 } 85 }