diff --git a/actions-languageservice/src/complete.test.ts b/actions-languageservice/src/complete.test.ts index 910da01..4d032d9 100644 --- a/actions-languageservice/src/complete.test.ts +++ b/actions-languageservice/src/complete.test.ts @@ -157,7 +157,7 @@ jobs: const result = await complete(...getPositionFromCursor(input)); expect(result).not.toBeUndefined(); - expect(result.length).toEqual(17); + expect(result.length).toEqual(0); }); it("custom value providers override defaults", async () => { diff --git a/actions-languageservice/src/complete.ts b/actions-languageservice/src/complete.ts index 15f1439..733ade0 100644 --- a/actions-languageservice/src/complete.ts +++ b/actions-languageservice/src/complete.ts @@ -40,6 +40,15 @@ export async function complete( valueProviderConfig?: ValueProviderConfig, contextProviderConfig?: ContextProviderConfig ): Promise { + // Edge case: when completing a key like `foo:|`, do not calculate auto-completions + const charBeforePos = textDocument.getText({ + start: {line: position.line, character: position.character - 1}, + end: {line: position.line, character: position.character} + }); + if (charBeforePos === ":") { + return []; + } + // Fix the input to work around YAML parsing issues const [newDoc, newPos] = transform(textDocument, position);