summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2025-07-07 14:54:54 -0700
committerGitHub <noreply@github.com>2025-07-07 21:54:54 +0000
commit3865a6596afca1c193eb17bbb74008077096e7c3 (patch)
tree0d04cab0ad720b75027ddcee855daf6f6eba5d57 /tests
parent7119d9cb487d866d1c25e55eafa03aca6e5e52e3 (diff)
Language server: sort completion candidate by relevance. (#7626)
* Language server: sort completion candidate by relevance. * Small adjustment.
Diffstat (limited to 'tests')
-rw-r--r--tests/language-server/completion-sorting-1.slang18
-rw-r--r--tests/language-server/completion-sorting-2.slang19
-rw-r--r--tests/language-server/completion-sorting-3.slang16
-rw-r--r--tests/language-server/completion-sorting-4.slang16
-rw-r--r--tests/language-server/completion-sorting-5.slang16
5 files changed, 85 insertions, 0 deletions
diff --git a/tests/language-server/completion-sorting-1.slang b/tests/language-server/completion-sorting-1.slang
new file mode 100644
index 000000000..974413451
--- /dev/null
+++ b/tests/language-server/completion-sorting-1.slang
@@ -0,0 +1,18 @@
+//TEST:LANG_SERVER(filecheck=CHECK):
+
+// Test that completion candidates are sorted according to context.
+
+enum Fruit { Orange, Apple, Banana }
+enum Color { Red, Green, Blue }
+void expect(Fruit e) {}
+void expect(Color e) {}
+
+
+void test()
+{
+//COMPLETE:14,15
+ Fruit t = // should list `Fruit` first.
+
+}
+
+// CHECK: Fruit:{{.*}}sort(0:Fruit) \ No newline at end of file
diff --git a/tests/language-server/completion-sorting-2.slang b/tests/language-server/completion-sorting-2.slang
new file mode 100644
index 000000000..7cf62af71
--- /dev/null
+++ b/tests/language-server/completion-sorting-2.slang
@@ -0,0 +1,19 @@
+//TEST:LANG_SERVER(filecheck=CHECK):
+
+// Test that completion candidates are sorted according to context.
+
+enum Fruit { Orange, Apple, Banana }
+enum Color { Red, Green, Blue }
+void expect(Fruit e) {}
+void expect(Color e) {}
+
+
+void test()
+{
+//COMPLETE:14,12
+ expect(); // should list `Fruit` and `Color` first.
+
+}
+
+// CHECK: Fruit:{{.*}}sort(0:Fruit)
+// CHECK: Color:{{.*}}sort(0:Color) \ No newline at end of file
diff --git a/tests/language-server/completion-sorting-3.slang b/tests/language-server/completion-sorting-3.slang
new file mode 100644
index 000000000..da633cf21
--- /dev/null
+++ b/tests/language-server/completion-sorting-3.slang
@@ -0,0 +1,16 @@
+//TEST:LANG_SERVER(filecheck=CHECK):
+
+// Test that completion candidates are sorted according to context.
+
+enum Fruit { Orange, Apple, Banana }
+struct MyType<Fruit v> {}
+
+
+void test()
+{
+//COMPLETE:12,12
+ MyType< // should list `Fruit` first.
+
+}
+
+// CHECK: Fruit:{{.*}}sort(0:Fruit) \ No newline at end of file
diff --git a/tests/language-server/completion-sorting-4.slang b/tests/language-server/completion-sorting-4.slang
new file mode 100644
index 000000000..9e9f2b15c
--- /dev/null
+++ b/tests/language-server/completion-sorting-4.slang
@@ -0,0 +1,16 @@
+//TEST:LANG_SERVER(filecheck=CHECK):
+
+// Test that completion candidates are sorted according to context.
+
+int myHelper() { return 0; }
+
+
+void test(int p)
+{
+//COMPLETE:11,13
+ int x =
+
+}
+
+// CHECK: p:{{.*}}sort(1:p)
+// CHECK: myHelper:{{.*}}sort(1:myHelper) \ No newline at end of file
diff --git a/tests/language-server/completion-sorting-5.slang b/tests/language-server/completion-sorting-5.slang
new file mode 100644
index 000000000..cdbc40130
--- /dev/null
+++ b/tests/language-server/completion-sorting-5.slang
@@ -0,0 +1,16 @@
+//TEST:LANG_SERVER(filecheck=CHECK):
+
+// Test that completion candidates are sorted according to context.
+
+int myHelper() { return 0; }
+
+
+void test(int p)
+{
+//COMPLETE:11,17
+ int x = p +
+
+}
+
+// CHECK: p:{{.*}}sort(1:p)
+// CHECK: myHelper:{{.*}}sort(1:myHelper) \ No newline at end of file