summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2024-01-17 20:22:28 +0000
committerGitHub <noreply@github.com>2024-01-17 20:22:28 +0000
commit2141543105dd9aabc0aca0534abc837f114e5bac (patch)
treee610510204beea26afa2d12178191ec78fcf151d /cli/lsp/language_server.rs
parent7662b056231b6ffa3106be795b9f19ab409543ab (diff)
feat(lsp): send "deno/didChangeDenoConfiguration" on init (#21965)
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs34
1 files changed, 32 insertions, 2 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index a3c817526..921e34bcd 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -1629,7 +1629,10 @@ impl Inner {
.iter()
.filter(|e| files_to_check.contains(&e.uri))
.map(|e| lsp_custom::DenoConfigurationChangeEvent {
- file_event: e.clone(),
+ uri: e.uri.clone(),
+ typ: lsp_custom::DenoConfigurationChangeType::from_file_change_type(
+ e.typ,
+ ),
configuration_type: lsp_custom::DenoConfigurationType::DenoJson,
}),
);
@@ -1660,7 +1663,10 @@ impl Inner {
.iter()
.filter(|e| files_to_check.contains(&e.uri))
.map(|e| lsp_custom::DenoConfigurationChangeEvent {
- file_event: e.clone(),
+ uri: e.uri.clone(),
+ typ: lsp_custom::DenoConfigurationChangeType::from_file_change_type(
+ e.typ,
+ ),
configuration_type: lsp_custom::DenoConfigurationType::PackageJson,
}),
);
@@ -3303,6 +3309,30 @@ impl tower_lsp::LanguageServer for LanguageServer {
);
ls.maybe_testing_server = Some(test_server);
}
+
+ let mut config_events = vec![];
+ if let Some(config_file) = ls.config.maybe_config_file() {
+ config_events.push(lsp_custom::DenoConfigurationChangeEvent {
+ uri: config_file.specifier.clone(),
+ typ: lsp_custom::DenoConfigurationChangeType::Added,
+ configuration_type: lsp_custom::DenoConfigurationType::DenoJson,
+ });
+ }
+ if let Some(package_json) = &ls.maybe_package_json {
+ config_events.push(lsp_custom::DenoConfigurationChangeEvent {
+ uri: package_json.specifier(),
+ typ: lsp_custom::DenoConfigurationChangeType::Added,
+ configuration_type: lsp_custom::DenoConfigurationType::PackageJson,
+ });
+ }
+ if !config_events.is_empty() {
+ ls.client.send_did_change_deno_configuration_notification(
+ lsp_custom::DidChangeDenoConfigurationNotificationParams {
+ changes: config_events,
+ },
+ );
+ }
+
(ls.client.clone(), ls.http_client.clone())
};