summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/lsp/analysis.rs18
-rw-r--r--tests/integration/lsp_tests.rs10
2 files changed, 16 insertions, 12 deletions
diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs
index 652697a9e..cd7d45928 100644
--- a/cli/lsp/analysis.rs
+++ b/cli/lsp/analysis.rs
@@ -647,6 +647,10 @@ fn is_preferred(
}
}
true
+ } else if let CodeActionKind::Deno(_) = i {
+ // This is to make sure 'Remove import' isn't preferred over 'Cache
+ // dependencies'.
+ return false;
} else {
true
}
@@ -1031,18 +1035,18 @@ impl CodeActionCollection {
/// Move out the code actions and return them as a `CodeActionResponse`.
pub fn get_response(self) -> lsp::CodeActionResponse {
- // Prefer TSC fixes first, then Deno fixes, then Deno lint fixes.
- let (tsc, rest): (Vec<_>, Vec<_>) = self
+ // Prefer Deno fixes first, then TSC fixes, then Deno lint fixes.
+ let (deno, rest): (Vec<_>, Vec<_>) = self
.actions
.into_iter()
- .partition(|a| matches!(a, CodeActionKind::Tsc(..)));
- let (deno, deno_lint): (Vec<_>, Vec<_>) = rest
- .into_iter()
.partition(|a| matches!(a, CodeActionKind::Deno(_)));
+ let (tsc, deno_lint): (Vec<_>, Vec<_>) = rest
+ .into_iter()
+ .partition(|a| matches!(a, CodeActionKind::Tsc(..)));
- tsc
+ deno
.into_iter()
- .chain(deno)
+ .chain(tsc)
.chain(deno_lint)
.map(|k| match k {
CodeActionKind::Deno(c) => lsp::CodeActionOrCommand::CodeAction(c),
diff --git a/tests/integration/lsp_tests.rs b/tests/integration/lsp_tests.rs
index 9ddaebc59..852f56e9b 100644
--- a/tests/integration/lsp_tests.rs
+++ b/tests/integration/lsp_tests.rs
@@ -4698,19 +4698,19 @@ fn test_lsp_code_actions_ordering() {
}
let res = serde_json::to_value(actions).unwrap();
- // Ensure ordering is "deno-ts" -> "deno" -> "deno-lint".
+ // Ensure ordering is "deno" -> "deno-ts" -> "deno-lint".
assert_eq!(
res,
json!([
{
- "title": "Add async modifier to containing function",
- "source": "deno-ts",
- },
- {
"title": "Cache \"https://deno.land/x/a/mod.ts\" and its dependencies.",
"source": "deno",
},
{
+ "title": "Add async modifier to containing function",
+ "source": "deno-ts",
+ },
+ {
"title": "Disable prefer-const for this line",
"source": "deno-lint",
},