From 6c7fe5b95b5932cf9e9bcee676c15754a7d881bd Mon Sep 17 00:00:00 2001 From: Ramya Achutha Rao Date: Tue, 13 Feb 2018 17:41:53 -0800 Subject: [PATCH] Dont repeat hex color suggestions in emmet Fixes #32232 --- extensions/css/server/src/cssServerMain.ts | 4 ++++ extensions/html/server/src/htmlServerMain.ts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/extensions/css/server/src/cssServerMain.ts b/extensions/css/server/src/cssServerMain.ts index d70ae5011d9..0a63d245559 100644 --- a/extensions/css/server/src/cssServerMain.ts +++ b/extensions/css/server/src/cssServerMain.ts @@ -194,6 +194,7 @@ function validateTextDocument(textDocument: TextDocument): void { } let cachedCompletionList: CompletionList; +const hexColorRegex = /^#[\d,a-f,A-F]{1,6}$/; connection.onCompletion(textDocumentPosition => { return runSafe(() => { let document = documents.get(textDocumentPosition.textDocument.uri); @@ -223,6 +224,9 @@ connection.onCompletion(textDocumentPosition => { const result = getLanguageService(document).doComplete(document, textDocumentPosition.position, stylesheets.get(document))!; /* TODO: remove ! once LS has null annotations */ if (emmetCompletionList && emmetCompletionList.items) { cachedCompletionList = result; + if (emmetCompletionList.items.length && hexColorRegex.test(emmetCompletionList.items[0].label) && result.items.some(x => x.label === emmetCompletionList.items[0].label)) { + emmetCompletionList.items.shift(); + } return { isIncomplete: true, items: [...emmetCompletionList.items, ...result.items] }; } return result; diff --git a/extensions/html/server/src/htmlServerMain.ts b/extensions/html/server/src/htmlServerMain.ts index 274a5d126bf..8d04a8a8590 100644 --- a/extensions/html/server/src/htmlServerMain.ts +++ b/extensions/html/server/src/htmlServerMain.ts @@ -238,6 +238,7 @@ async function validateTextDocument(textDocument: TextDocument) { } let cachedCompletionList: CompletionList; +const hexColorRegex = /^#[\d,a-f,A-F]{1,6}$/; connection.onCompletion(async textDocumentPosition => { return runSafe(async () => { let document = documents.get(textDocumentPosition.textDocument.uri); @@ -280,6 +281,9 @@ connection.onCompletion(async textDocumentPosition => { let result = mode.doComplete(document, textDocumentPosition.position, settings); if (emmetCompletionList && emmetCompletionList.items) { cachedCompletionList = result; + if (emmetCompletionList.items.length && hexColorRegex.test(emmetCompletionList.items[0].label) && result.items.some(x => x.label === emmetCompletionList.items[0].label)) { + emmetCompletionList.items.shift(); + } return { isIncomplete: true, items: [...emmetCompletionList.items, ...result.items] }; } return result; -- GitLab