diff --git a/extensions/emmet/npm-shrinkwrap.json b/extensions/emmet/npm-shrinkwrap.json index e91e4e9c33b..85111c5d6c4 100644 --- a/extensions/emmet/npm-shrinkwrap.json +++ b/extensions/emmet/npm-shrinkwrap.json @@ -38,9 +38,9 @@ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz" }, "vscode-emmet-helper": { - "version": "1.1.8", - "from": "vscode-emmet-helper@>=1.0.8 <2.0.0", - "resolved": "https://registry.npmjs.org/vscode-emmet-helper/-/vscode-emmet-helper-1.1.8.tgz" + "version": "1.1.9", + "from": "vscode-emmet-helper@>=1.0.9 <2.0.0", + "resolved": "https://registry.npmjs.org/vscode-emmet-helper/-/vscode-emmet-helper-1.1.9.tgz" }, "vscode-languageserver-types": { "version": "3.3.0", diff --git a/extensions/emmet/package.json b/extensions/emmet/package.json index 7e6d7155d31..8b67b7f8e89 100644 --- a/extensions/emmet/package.json +++ b/extensions/emmet/package.json @@ -265,7 +265,7 @@ "@emmetio/html-matcher": "^0.3.1", "@emmetio/css-parser": "ramya-rao-a/css-parser#vscode", "@emmetio/math-expression": "^0.1.1", - "vscode-emmet-helper": "^1.1.8", + "vscode-emmet-helper": "^1.1.9", "vscode-languageserver-types": "^3.0.3", "image-size": "^0.5.2", "vscode-nls": "2.0.2" diff --git a/extensions/emmet/src/abbreviationActions.ts b/extensions/emmet/src/abbreviationActions.ts index eaec9939c2e..c0d3758abdb 100644 --- a/extensions/emmet/src/abbreviationActions.ts +++ b/extensions/emmet/src/abbreviationActions.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as vscode from 'vscode'; -import { Node, HtmlNode, Rule, Property } from 'EmmetNode'; +import { Node, HtmlNode, Rule } from 'EmmetNode'; import { getNode, getInnerRange, getMappingForIncludedLanguages, parseDocument, validate, getEmmetConfiguration } from './util'; import { getExpandOptions, extractAbbreviation, extractAbbreviationFromText, isStyleSheet, isAbbreviationValid, getEmmetMode, expandAbbreviation } from 'vscode-emmet-helper'; @@ -150,7 +150,7 @@ export function expandEmmetAbbreviation(args): Thenable { } let currentNode = getNode(rootNode, position, true); - if (!isValidLocationForEmmetAbbreviation(currentNode, syntax, position, abbreviation)) { + if (!isValidLocationForEmmetAbbreviation(currentNode, syntax, position)) { return; } @@ -182,22 +182,13 @@ function fallbackTab(): Thenable { * @param syntax syntax of the abbreviation * @param position position to validate */ -export function isValidLocationForEmmetAbbreviation(currentNode: Node, syntax: string, position: vscode.Position, abbreviation: string): boolean { +export function isValidLocationForEmmetAbbreviation(currentNode: Node, syntax: string, position: vscode.Position): boolean { // Continue validation only if the file was parse-able and the currentNode has been found if (!currentNode) { return true; } if (isStyleSheet(syntax)) { - - // CSS Emmet snippets are for property-value or in case of colors, just value - if (currentNode.type === 'property' && (currentNode).value) { - if (position.isBefore((currentNode).valueToken.start)) { - return false; - } - return /^#\d+$/.test(abbreviation); - } - // If current node is a rule or at-rule, then perform additional checks to ensure // emmet suggestions are not provided in the rule selector if (currentNode.type !== 'rule' && currentNode.type !== 'at-rule') { diff --git a/extensions/emmet/src/defaultCompletionProvider.ts b/extensions/emmet/src/defaultCompletionProvider.ts index 36b07ea06aa..45daedcb868 100644 --- a/extensions/emmet/src/defaultCompletionProvider.ts +++ b/extensions/emmet/src/defaultCompletionProvider.ts @@ -111,7 +111,7 @@ export class DefaultCompletionItemProvider implements vscode.CompletionItemProvi } } - if (!isValidLocationForEmmetAbbreviation(currentNode, syntax, position, document.getText(document.getWordRangeAtPosition(position)))) { + if (!isValidLocationForEmmetAbbreviation(currentNode, syntax, position)) { return; } return syntax; diff --git a/extensions/emmet/src/test/abbreviationAction.test.ts b/extensions/emmet/src/test/abbreviationAction.test.ts index d35fc4a394b..0a43576e2bb 100644 --- a/extensions/emmet/src/test/abbreviationAction.test.ts +++ b/extensions/emmet/src/test/abbreviationAction.test.ts @@ -11,6 +11,7 @@ import { expandEmmetAbbreviation, wrapWithAbbreviation, wrapIndividualLinesWithA const cssContents = ` .boo { margin: 20px 10px; + m10 background-image: url('tryme.png'); m10 } @@ -189,9 +190,9 @@ suite('Tests for Expand Abbreviations (CSS)', () => { test('Expand abbreviation (CSS)', () => { return withRandomFileEditor(cssContents, 'css', (editor, doc) => { - editor.selection = new Selection(4, 1, 4, 4); + editor.selections = [new Selection(3, 1, 3, 4), new Selection(5, 1, 5, 4)]; return expandEmmetAbbreviation(null).then(() => { - assert.equal(editor.document.getText(), cssContents.replace('m10', 'margin: 10px;')); + assert.equal(editor.document.getText(), cssContents.replace(/m10/g, 'margin: 10px;')); return Promise.resolve(); }); });