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: ) {}", + }, + 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 { 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: ) {} +13 extends mutates name(self: ) {} 13 extends native name(self: ); 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: ) {} +13 extends mutates name(self: ) {} 13 extends native name(self: ); 13 fun name() {} 13 native name() {}