From e7ce1f53eaba6bad9c770c71156aa17ef758eebd Mon Sep 17 00:00:00 2001 From: Ramya Achutha Rao Date: Fri, 23 Mar 2018 17:38:02 -0700 Subject: [PATCH] Do not lookahead when extracting css abbreviations Fixes #46452 --- .../emmet/src/defaultCompletionProvider.ts | 2 +- .../src/test/cssAbbreviationAction.test.ts | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/extensions/emmet/src/defaultCompletionProvider.ts b/extensions/emmet/src/defaultCompletionProvider.ts index 0daed26f446..29fdcd860b1 100644 --- a/extensions/emmet/src/defaultCompletionProvider.ts +++ b/extensions/emmet/src/defaultCompletionProvider.ts @@ -28,7 +28,7 @@ export class DefaultCompletionItemProvider implements vscode.CompletionItemProvi } const helper = getEmmetHelper(); - const extractAbbreviationResults = helper.extractAbbreviation(document, position); + const extractAbbreviationResults = helper.extractAbbreviation(document, position, !isStyleSheet(syntax)); if (!extractAbbreviationResults) { return; } diff --git a/extensions/emmet/src/test/cssAbbreviationAction.test.ts b/extensions/emmet/src/test/cssAbbreviationAction.test.ts index 4f07358638b..9d53d8599f1 100644 --- a/extensions/emmet/src/test/cssAbbreviationAction.test.ts +++ b/extensions/emmet/src/test/cssAbbreviationAction.test.ts @@ -110,6 +110,23 @@ nav# }); }); + test('Skip when typing the last property value in single line rules (CSS)', () => { + const testContent = `.foo {padding: 10px; margin: a}`; + + return withRandomFileEditor(testContent, 'css', (editor, doc) => { + editor.selection = new Selection(0, 30, 0, 30); + return expandEmmetAbbreviation(null).then(() => { + assert.equal(editor.document.getText(), testContent); + const cancelSrc = new CancellationTokenSource(); + const completionPromise = completionProvider.provideCompletionItems(editor.document, new Position(0, 30), cancelSrc.token); + if (completionPromise) { + assert.equal(1, 2, `Invalid completion at property value`); + } + return Promise.resolve(); + }); + }); + }); + test('Allow hex color when typing property values when there is a property in the next line (CSS)', () => { const testContent = ` .foo {