diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 65f02582d63..09799f023e3 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -167,7 +167,6 @@ module Harness.LanguageService { } export class TypeScriptLS implements ts.LanguageServiceShimHost { private ls: ts.LanguageServiceShim = null; - public newLS: ts.LanguageService; private fileNameToScript: ts.Map = {}; @@ -268,12 +267,8 @@ module Harness.LanguageService { * To access the non-shim (i.e. actual) language service, use the "ls.languageService" property. */ public getLanguageService(): ts.LanguageServiceShim { - var ls = new TypeScript.Services.TypeScriptServicesFactory().createLanguageServiceShim(this); - this.ls = ls; - var hostAdapter = new LanguageServiceShimHostAdapter(this); - - this.newLS = ts.createLanguageService(hostAdapter, NonCachingDocumentRegistry.Instance); - return ls; + this.ls = new TypeScript.Services.TypeScriptServicesFactory().createLanguageServiceShim(this); + return this.ls; } /** Parse file given its source text */ diff --git a/src/services/services.ts b/src/services/services.ts index b11d8a91ec8..19845f86483 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2210,8 +2210,11 @@ module ts { export function createClassifier(host: Logger): Classifier { var scanner: Scanner; var noRegexTable: boolean[]; + /// We do not have a full parser support to know when we should parse a regex or not + /// If we consider every slash token to be a regex, we could be missing cases like "1/2/3", where + /// we have a series of divide operator. this list allows us to be more accurate by ruling out + /// locations where a regexp cannot exist. if (!noRegexTable) { noRegexTable = []; noRegexTable[SyntaxKind.Identifier] = true; noRegexTable[SyntaxKind.StringLiteral] = true; noRegexTable[SyntaxKind.NumericLiteral] = true; noRegexTable[SyntaxKind.RegularExpressionLiteral] = true; noRegexTable[SyntaxKind.ThisKeyword] = true; noRegexTable[SyntaxKind.PlusPlusToken] = true; noRegexTable[SyntaxKind.MinusMinusToken] = true; noRegexTable[SyntaxKind.CloseParenToken] = true; noRegexTable[SyntaxKind.CloseBracketToken] = true; noRegexTable[SyntaxKind.CloseBraceToken] = true; noRegexTable[SyntaxKind.TrueKeyword] = true; noRegexTable[SyntaxKind.FalseKeyword] = true; } - function getClassificationsForLine(text: string, lexState: EndOfLineState): ClassificationResult { var offset = 0; var lastTokenOrCommentEnd = 0;