summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/lsp/tsc.rs15
-rw-r--r--cli/tests/integration/lsp_tests.rs14
2 files changed, 18 insertions, 11 deletions
diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs
index 7442f8a1e..2c63131b6 100644
--- a/cli/lsp/tsc.rs
+++ b/cli/lsp/tsc.rs
@@ -2817,10 +2817,10 @@ impl CompletionEntry {
let mut kind: Option<lsp::CompletionItemKind> =
Some(self.kind.clone().into());
- let sort_text = if self.source.is_some() {
- Some(format!("\u{ffff}{}", self.sort_text))
+ let mut sort_text = if self.source.is_some() {
+ format!("\u{ffff}{}", self.sort_text)
} else {
- Some(self.sort_text.clone())
+ self.sort_text.clone()
};
let preselect = self.is_recommended;
@@ -2888,6 +2888,13 @@ impl CompletionEntry {
}
}
}
+ // We want relative or bare (import-mapped or otherwise) specifiers to
+ // appear at the top.
+ if resolve_url(&source).is_err() {
+ sort_text += "_0";
+ } else {
+ sort_text += "_1";
+ }
label_details
.get_or_insert_with(Default::default)
.description = Some(source);
@@ -2919,7 +2926,7 @@ impl CompletionEntry {
label,
label_details,
kind,
- sort_text,
+ sort_text: Some(sort_text),
preselect,
text_edit,
filter_text,
diff --git a/cli/tests/integration/lsp_tests.rs b/cli/tests/integration/lsp_tests.rs
index 5499c8a6e..de9626620 100644
--- a/cli/tests/integration/lsp_tests.rs
+++ b/cli/tests/integration/lsp_tests.rs
@@ -5308,7 +5308,7 @@ fn lsp_completions_auto_import() {
"description": "./b.ts",
},
"kind": 6,
- "sortText": "￿16",
+ "sortText": "￿16_0",
"commitCharacters": [
".",
",",
@@ -5347,7 +5347,7 @@ fn lsp_completions_auto_import() {
"kind": "markdown",
"value": ""
},
- "sortText": "￿16",
+ "sortText": "￿16_0",
"additionalTextEdits": [
{
"range": {
@@ -5430,7 +5430,7 @@ fn lsp_npm_completions_auto_import_and_quick_fix_no_import_map() {
"kind": "markdown",
"value": ""
},
- "sortText": "￿16",
+ "sortText": "￿16_1",
"additionalTextEdits": [
{
"range": {
@@ -5540,7 +5540,7 @@ fn lsp_npm_completions_auto_import_and_quick_fix_no_import_map() {
"description": "npm:chalk@5.0",
},
"kind": 6,
- "sortText": "￿16",
+ "sortText": "￿16_1",
"additionalTextEdits": [
{
"range": {
@@ -5748,7 +5748,7 @@ fn lsp_completions_auto_import_and_quick_fix_with_import_map() {
"kind": "markdown",
"value": ""
},
- "sortText": "￿16",
+ "sortText": "￿16_0",
"additionalTextEdits": [
{
"range": {
@@ -5858,7 +5858,7 @@ fn lsp_completions_auto_import_and_quick_fix_with_import_map() {
"description": "chalk",
},
"kind": 6,
- "sortText": "￿16",
+ "sortText": "￿16_0",
"additionalTextEdits": [
{
"range": {
@@ -5968,7 +5968,7 @@ fn lsp_completions_auto_import_and_quick_fix_with_import_map() {
"description": "print_hello",
},
"kind": 3,
- "sortText": "￿16",
+ "sortText": "￿16_0",
"additionalTextEdits": [
{
"range": {