From 09bfb693f6e4f6955aaed620184c31415559d2e3 Mon Sep 17 00:00:00 2001 From: Pine Wu Date: Mon, 29 Jul 2019 23:21:06 -0700 Subject: [PATCH] Revert "Fix #70731" This reverts commit c25e395ace2a3277f99724887b5dc28f2951dbea. --- extensions/emmet/.vscode/launch.json | 50 ++++++++----------- extensions/emmet/package.json | 7 ++- .../emmet/src/defaultCompletionProvider.ts | 36 +++---------- .../emmet/src/test/abbreviationAction.test.ts | 2 +- extensions/emmet/yarn.lock | 24 --------- 5 files changed, 32 insertions(+), 87 deletions(-) diff --git a/extensions/emmet/.vscode/launch.json b/extensions/emmet/.vscode/launch.json index 0b693f921ee..8a89122dafb 100644 --- a/extensions/emmet/.vscode/launch.json +++ b/extensions/emmet/.vscode/launch.json @@ -1,31 +1,21 @@ { - // Use IntelliSense to learn about possible Node.js debug attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "extensionHost", - "request": "launch", - "name": "Launch Extension", - "runtimeExecutable": "${execPath}", - "args": ["--extensionDevelopmentPath=${workspaceFolder}"], - "sourceMaps": true, - "outFiles": ["${workspaceFolder}/out/**/*.js"] - }, - { - "type": "extensionHost", - "request": "launch", - "name": "Launch Tests", - "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}", - "--extensionTestsPath=${workspaceFolder}/out/test", - "--disable-extensions", - "--skip-getting-started", - ], - "sourceMaps": true, - "outFiles": ["${workspaceFolder}/out/**/*.js"] - } - ] -} + // Use IntelliSense to learn about possible Node.js debug attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "extensionHost", + "request": "launch", + "name": "Launch Extension", + "runtimeExecutable": "${execPath}", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}" + ], + "sourceMaps": true, + "outFiles": [ + "${workspaceFolder}/out/**/*.js" + ] + } + ] +} \ No newline at end of file diff --git a/extensions/emmet/package.json b/extensions/emmet/package.json index d88c3717ab3..fd347852231 100644 --- a/extensions/emmet/package.json +++ b/extensions/emmet/package.json @@ -3,8 +3,8 @@ "displayName": "Emmet", "description": "%description%", "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", + "publisher": "vscode", + "license": "MIT", "engines": { "vscode": "^1.13.0" }, @@ -450,7 +450,6 @@ "@emmetio/html-matcher": "^0.3.3", "@emmetio/math-expression": "^0.1.1", "image-size": "^0.5.2", - "vscode-emmet-helper": "^1.2.15", - "vscode-html-languageservice": "^3.0.3" + "vscode-emmet-helper": "^1.2.15" } } diff --git a/extensions/emmet/src/defaultCompletionProvider.ts b/extensions/emmet/src/defaultCompletionProvider.ts index ec626c96a7b..cb9f433f6ba 100644 --- a/extensions/emmet/src/defaultCompletionProvider.ts +++ b/extensions/emmet/src/defaultCompletionProvider.ts @@ -6,15 +6,12 @@ import * as vscode from 'vscode'; import { Node, Stylesheet } from 'EmmetNode'; import { isValidLocationForEmmetAbbreviation } from './abbreviationActions'; -import { getEmmetHelper, getMappingForIncludedLanguages, parsePartialStylesheet, getEmmetConfiguration, getEmmetMode, isStyleSheet, parseDocument, getNode } from './util'; -import { getLanguageService, TextDocument, TokenType } from 'vscode-html-languageservice'; +import { getEmmetHelper, getMappingForIncludedLanguages, parsePartialStylesheet, getEmmetConfiguration, getEmmetMode, isStyleSheet, parseDocument, getEmbeddedCssNodeIfAny, isStyleAttribute, getNode } from './util'; export class DefaultCompletionItemProvider implements vscode.CompletionItemProvider { private lastCompletionType: string | undefined; - private htmlLS = getLanguageService(); - public provideCompletionItems(document: vscode.TextDocument, position: vscode.Position, _: vscode.CancellationToken, context: vscode.CompletionContext): Thenable | undefined { const completionResult = this.provideCompletionItemsInternal(document, position, context); if (!completionResult) { @@ -79,37 +76,20 @@ export class DefaultCompletionItemProvider implements vscode.CompletionItemProvi } if (validateLocation) { - const lsDoc = TextDocument.create(document.uri.toString(), 'html', 0, document.getText()); - const parsedLsDoc = this.htmlLS.parseHTMLDocument(lsDoc); - const positionOffset = document.offsetAt(position); - const node = parsedLsDoc.findNodeAt(positionOffset); - - if (node.tag === 'script') { - return; - } - if (node.tag === 'style') { + rootNode = parseDocument(document, false); + currentNode = getNode(rootNode, position, true); + if (isStyleAttribute(currentNode, position)) { syntax = 'css'; validateLocation = false; } else { - if (node.attributes && node.attributes['style']) { - const scanner = this.htmlLS.createScanner(document.getText(), node.start); - let tokenType = scanner.scan(); - let prevAttr = undefined; - while (tokenType !== TokenType.EOS && (scanner.getTokenEnd() <= positionOffset)) { - tokenType = scanner.scan(); - if (tokenType === TokenType.AttributeName) { - prevAttr = scanner.getTokenText(); - } - } - if (prevAttr === 'style') { - syntax = 'css'; - validateLocation = false; - } + const embeddedCssNode = getEmbeddedCssNodeIfAny(document, currentNode, position); + if (embeddedCssNode) { + currentNode = getNode(embeddedCssNode, position, true); + syntax = 'css'; } } } - } const extractAbbreviationResults = helper.extractAbbreviation(document, position, !isStyleSheet(syntax)); diff --git a/extensions/emmet/src/test/abbreviationAction.test.ts b/extensions/emmet/src/test/abbreviationAction.test.ts index 2fe0f08e32f..0a99bae1862 100644 --- a/extensions/emmet/src/test/abbreviationAction.test.ts +++ b/extensions/emmet/src/test/abbreviationAction.test.ts @@ -269,7 +269,7 @@ suite('Tests for Expand Abbreviations (HTML)', () => { editor.selection = new Selection(13, 14, 13, 14); const cancelSrc = new CancellationTokenSource(); const completionPromise = completionProvider.provideCompletionItems(editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke }); - assert.equal(!completionPromise, true, `Got unexpected completion promise instead of undefined`); + assert.equal(!completionPromise, true, `Got unexpected comapletion promise instead of undefined`); return Promise.resolve(); }); }); diff --git a/extensions/emmet/yarn.lock b/extensions/emmet/yarn.lock index 7b22c533426..a417831756a 100644 --- a/extensions/emmet/yarn.lock +++ b/extensions/emmet/yarn.lock @@ -2478,35 +2478,11 @@ vscode-emmet-helper@^1.2.15: jsonc-parser "^1.0.0" vscode-languageserver-types "^3.6.0-next.1" -vscode-html-languageservice@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-3.0.3.tgz#0aeae18a59000e317447ea34965f72680a2140ef" - integrity sha512-U+upM3gHp3HaF3wXAnUduA6IDKcz6frWS/dTAju3cZVIyZwOLBBFElQVlLH0ycHyMzqUFrjvdv+kEyPAEWfQ/g== - dependencies: - vscode-languageserver-types "^3.15.0-next.2" - vscode-nls "^4.1.1" - vscode-uri "^2.0.3" - -vscode-languageserver-types@^3.15.0-next.2: - version "3.15.0-next.2" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.0-next.2.tgz#a0601332cdaafac21931f497bb080cfb8d73f254" - integrity sha512-2JkrMWWUi2rlVLSo9OFR2PIGUzdiowEM8NgNYiwLKnXTjpwpjjIrJbNNxDik7Rv4oo9KtikcFQZKXbrKilL/MQ== - vscode-languageserver-types@^3.6.0-next.1: version "3.6.0-next.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.6.0-next.1.tgz#98e488d3f87b666b4ee1a3d89f0023e246d358f3" integrity sha512-n4G+hCgZwAhtcJSCkwJP153TLdcEBWwrIrb3Su/SpOkhmU7KjDgxaQBLA45hf+QbhB8uKQb+TVStPvbuYFHSMA== -vscode-nls@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.1.tgz#f9916b64e4947b20322defb1e676a495861f133c" - integrity sha512-4R+2UoUUU/LdnMnFjePxfLqNhBS8lrAFyX7pjb2ud/lqDkrUavFUTcG7wR0HBZFakae0Q6KLBFjMS6W93F403A== - -vscode-uri@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.0.3.tgz#25e5f37f552fbee3cec7e5f80cef8469cefc6543" - integrity sha512-4D3DI3F4uRy09WNtDGD93H9q034OHImxiIcSq664Hq1Y1AScehlP3qqZyTkX/RWxeu0MRMHGkrxYqm2qlDF/aw== - vscode@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.0.1.tgz#3d161200615fe2af1d92ddc650751159411a513b"