From 855b1a262f3a769d44765e78f94e566d875b9286 Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 29 Jul 2025 07:35:58 -0700 Subject: [Language Server]: Show signature help on generic parameters. (#7913) * Show signature help on generic parameters. * Fix. * Update tests. * slang-test: make vvl error go through stderr. * update slang-rhi * Update slang-rhi --- tests/language-server/generic-signature-1.slang | 15 +++++++++++++++ tests/language-server/generic-signature-2.slang | 15 +++++++++++++++ tests/language-server/generic-signature-3.slang | 14 ++++++++++++++ tests/language-server/generic-signature.slang | 15 +++++++++++++++ tests/language-server/robustness-6.slang | 4 +++- tests/language-server/tuple-completion.slang | 11 +++++++++++ 6 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 tests/language-server/generic-signature-1.slang create mode 100644 tests/language-server/generic-signature-2.slang create mode 100644 tests/language-server/generic-signature-3.slang create mode 100644 tests/language-server/generic-signature.slang create mode 100644 tests/language-server/tuple-completion.slang (limited to 'tests/language-server') diff --git a/tests/language-server/generic-signature-1.slang b/tests/language-server/generic-signature-1.slang new file mode 100644 index 000000000..b7a6d3112 --- /dev/null +++ b/tests/language-server/generic-signature-1.slang @@ -0,0 +1,15 @@ +//TEST:LANG_SERVER(filecheck=CHECK): +struct Parent +{ + static void test(vector v, int m) + {} + static void test(){} +} + +void use() +{ +//SIGNATURE:12,25 + Parent.test(1, 2); +} + +//CHECK:static func Parent.test(vector v, int m) -> void \ No newline at end of file diff --git a/tests/language-server/generic-signature-2.slang b/tests/language-server/generic-signature-2.slang new file mode 100644 index 000000000..2acbf4113 --- /dev/null +++ b/tests/language-server/generic-signature-2.slang @@ -0,0 +1,15 @@ +//TEST:LANG_SERVER(filecheck=CHECK): +struct Parent +{ + static void test(vector v, int m) + {} + static void test(){} +} + +void use() +{ +//SIGNATURE:12,22 + Parent.test< +} + +//CHECK:static func Parent.test -> void \ No newline at end of file diff --git a/tests/language-server/generic-signature-3.slang b/tests/language-server/generic-signature-3.slang new file mode 100644 index 000000000..e379245ea --- /dev/null +++ b/tests/language-server/generic-signature-3.slang @@ -0,0 +1,14 @@ +//TEST:LANG_SERVER(filecheck=CHECK): +struct Parent +{ + static void test(vector v, int m) + {} +} + +void use() +{ +//SIGNATURE:11,22 + Parent.test +} + +//CHECK:static func Parent.test -> void \ No newline at end of file diff --git a/tests/language-server/generic-signature.slang b/tests/language-server/generic-signature.slang new file mode 100644 index 000000000..9e5e67a00 --- /dev/null +++ b/tests/language-server/generic-signature.slang @@ -0,0 +1,15 @@ +//TEST:LANG_SERVER(filecheck=CHECK): +struct Parent +{ + static void test(vector v, int m) + {} + static void test(){} +} + +void use() +{ +//SIGNATURE:12,14 + Parent.test(1, 2); +} + +//CHECK: struct Parent \ No newline at end of file diff --git a/tests/language-server/robustness-6.slang b/tests/language-server/robustness-6.slang index ef5924cf3..9208b7969 100644 --- a/tests/language-server/robustness-6.slang +++ b/tests/language-server/robustness-6.slang @@ -1,4 +1,4 @@ -//TEST:LANG_SERVER: +//TEST:LANG_SERVER(filecheck=CHECK): //HOVER:4,8 float dsqr(T obj, float x) { return no_diff(obj.calc(x)) + x * x; } + +// CHECK: dsqr \ No newline at end of file diff --git a/tests/language-server/tuple-completion.slang b/tests/language-server/tuple-completion.slang new file mode 100644 index 000000000..d4a02a04f --- /dev/null +++ b/tests/language-server/tuple-completion.slang @@ -0,0 +1,11 @@ +//TEST:LANG_SERVER(filecheck=CHECK): +void f() +{ + Tuple v; +//COMPLETE:6,7 + v. +} + +// CHECK: _0 +// CHECK: _1 +// CHECK: equals \ No newline at end of file -- cgit v1.2.3