summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-03-30 10:43:16 -0400
committerGitHub <noreply@github.com>2023-03-30 10:43:16 -0400
commite0429e2ad641e9207e00838de209ce33b3562f70 (patch)
tree496c38dadb79c4dc9ae4eea755e2ac6a65440ad4 /cli/lsp/language_server.rs
parent3deade4b14de809f67ed0471f8e91c91b25fedcc (diff)
fix(repl): improve package.json support (#18497)
1. Fixes a cosmetic issue in the repl where it would display lsp warning messages. 2. Lazily loads dependencies from the package.json on use. 3. Supports using bare specifiers from package.json in the REPL. Closes #17929 Closes #18494
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs21
1 files changed, 13 insertions, 8 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index 372a1489d..2d0bbd140 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -13,7 +13,6 @@ use deno_runtime::deno_node::PackageJson;
use deno_runtime::deno_web::BlobStore;
use import_map::ImportMap;
use log::error;
-use log::warn;
use serde_json::from_value;
use std::collections::HashMap;
use std::collections::HashSet;
@@ -47,6 +46,7 @@ use super::documents::Documents;
use super::documents::DocumentsFilter;
use super::documents::LanguageId;
use super::logging::lsp_log;
+use super::logging::lsp_warn;
use super::lsp_custom;
use super::parent_process_checker;
use super::performance::Performance;
@@ -675,7 +675,7 @@ impl Inner {
if let Some(ignored_options) = maybe_ignored_options {
// TODO(@kitsonk) turn these into diagnostics that can be sent to the
// client
- warn!("{}", ignored_options);
+ lsp_warn!("{}", ignored_options);
}
}
@@ -1166,9 +1166,10 @@ impl Inner {
LanguageId::Unknown
});
if language_id == LanguageId::Unknown {
- warn!(
+ lsp_warn!(
"Unsupported language id \"{}\" received for document \"{}\".",
- params.text_document.language_id, params.text_document.uri
+ params.text_document.language_id,
+ params.text_document.uri
);
}
let document = self.documents.open(
@@ -1209,8 +1210,12 @@ impl Inner {
async fn refresh_npm_specifiers(&mut self) {
let package_reqs = self.documents.npm_package_reqs();
- if let Err(err) = self.npm_resolver.set_package_reqs(package_reqs).await {
- warn!("Could not set npm package requirements. {:#}", err);
+ if let Err(err) = self
+ .npm_resolver
+ .set_package_reqs((*package_reqs).clone())
+ .await
+ {
+ lsp_warn!("Could not set npm package requirements. {:#}", err);
}
}
@@ -1463,7 +1468,7 @@ impl Inner {
Ok(None) => Some(Vec::new()),
Err(err) => {
// TODO(lucacasonato): handle error properly
- warn!("Format error: {:#}", err);
+ lsp_warn!("Format error: {:#}", err);
None
}
};
@@ -2846,7 +2851,7 @@ impl tower_lsp::LanguageServer for LanguageServer {
.register_capability(vec![registration])
.await
{
- warn!("Client errored on capabilities.\n{:#}", err);
+ lsp_warn!("Client errored on capabilities.\n{:#}", err);
}
}