summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/lsp/diagnostics.rs36
-rw-r--r--cli/lsp/tsc.rs3
2 files changed, 9 insertions, 30 deletions
diff --git a/cli/lsp/diagnostics.rs b/cli/lsp/diagnostics.rs
index 00f535391..1349029c3 100644
--- a/cli/lsp/diagnostics.rs
+++ b/cli/lsp/diagnostics.rs
@@ -502,7 +502,12 @@ impl DiagnosticsServer {
)
.await
.map_err(|err| {
- error!("Error generating TypeScript diagnostics: {}", err);
+ if !token.is_cancelled() {
+ error!(
+ "Error generating TypeScript diagnostics: {}",
+ err
+ );
+ }
})
.unwrap_or_default();
@@ -1616,35 +1621,6 @@ let c: number = "a";
}
#[tokio::test]
- async fn test_cancelled_ts_diagnostics_request() {
- let temp_dir = TempDir::new();
- let (snapshot, cache_location) = setup(
- &temp_dir,
- &[(
- "file:///a.ts",
- r#"export let a: string = 5;"#,
- 1,
- LanguageId::TypeScript,
- )],
- None,
- );
- let snapshot = Arc::new(snapshot);
- let cache =
- Arc::new(GlobalHttpCache::new(cache_location, RealDenoCacheEnv));
- let ts_server = TsServer::new(Default::default(), cache);
-
- let config = mock_config();
- let token = CancellationToken::new();
- token.cancel();
- let diagnostics =
- generate_ts_diagnostics(snapshot.clone(), &config, &ts_server, token)
- .await
- .unwrap();
- // should be none because it's cancelled
- assert_eq!(diagnostics.len(), 0);
- }
-
- #[tokio::test]
async fn test_deno_diagnostics_with_import_map() {
let temp_dir = TempDir::new();
let (snapshot, _) = setup(
diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs
index 072a881c3..72dbcc3a8 100644
--- a/cli/lsp/tsc.rs
+++ b/cli/lsp/tsc.rs
@@ -4414,6 +4414,9 @@ fn request(
request: TscRequest,
token: CancellationToken,
) -> Result<Value, AnyError> {
+ if token.is_cancelled() {
+ return Err(anyhow!("Operation was cancelled."));
+ }
let (performance, id) = {
let op_state = runtime.op_state();
let mut op_state = op_state.borrow_mut();