From 5155cbc4f455d9eb32389fe72b2d0f55c73953c3 Mon Sep 17 00:00:00 2001 From: i582 <51853996+i582@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:40:16 +0400 Subject: [PATCH] feat(completion): add `extends mutates fun foo(self: Type) {}` to completion Fixes #71 --- .../providers/TopLevelFunctionCompletionProvider.ts | 11 +++++++++++ server/src/e2e/suite/index.ts | 2 +- .../src/e2e/suite/testcases/completion/top-level.test | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/server/src/completion/providers/TopLevelFunctionCompletionProvider.ts b/server/src/completion/providers/TopLevelFunctionCompletionProvider.ts index caa080e3..d0ee82f2 100644 --- a/server/src/completion/providers/TopLevelFunctionCompletionProvider.ts +++ b/server/src/completion/providers/TopLevelFunctionCompletionProvider.ts @@ -57,6 +57,17 @@ export class TopLevelFunctionCompletionProvider implements CompletionProvider { weight: CompletionWeight.KEYWORD, }) + result.add({ + label: "extends mutates", + labelDetails: { + detail: " name(self: <type>) {}", + }, + kind: CompletionItemKind.Keyword, + insertText: `extends mutates fun ${extendsTemplate}`, + insertTextFormat: InsertTextFormat.Snippet, + weight: CompletionWeight.KEYWORD, + }) + result.add({ label: "extends native", labelDetails: { diff --git a/server/src/e2e/suite/index.ts b/server/src/e2e/suite/index.ts index 78a2e1bf..b8a5f9f5 100644 --- a/server/src/e2e/suite/index.ts +++ b/server/src/e2e/suite/index.ts @@ -12,7 +12,7 @@ export function run(): Promise<void> { const testsRoot = path.resolve(__dirname, ".") return new Promise((resolve, reject) => { - glob("*.test.js", { + glob("completion.test.js", { cwd: testsRoot, }) .then(files => { diff --git a/server/src/e2e/suite/testcases/completion/top-level.test b/server/src/e2e/suite/testcases/completion/top-level.test index a2b0a1f0..8e06d28a 100644 --- a/server/src/e2e/suite/testcases/completion/top-level.test +++ b/server/src/e2e/suite/testcases/completion/top-level.test @@ -11,6 +11,7 @@ fun foo() {} 13 contract Name with Trait {} 13 asm fun name() {} 13 extends fun name(self: <type>) {} +13 extends mutates name(self: <type>) {} 13 extends native name(self: <type>); 13 fun name() {} 13 native name() {} @@ -28,6 +29,7 @@ fun foo() {} 13 contract Name with Trait {} 13 asm fun name() {} 13 extends fun name(self: <type>) {} +13 extends mutates name(self: <type>) {} 13 extends native name(self: <type>); 13 fun name() {} 13 native name() {}