diff --git a/extensions/typescript-language-features/src/features/task.ts b/extensions/typescript-language-features/src/features/task.ts index d5fa55ba87a..d9fa6f783d8 100644 --- a/extensions/typescript-language-features/src/features/task.ts +++ b/extensions/typescript-language-features/src/features/task.ts @@ -73,10 +73,10 @@ class TscTaskProvider implements vscode.TaskProvider { public resolveTask(_task: vscode.Task): vscode.Task | undefined { const definition = _task.definition; - const badTsconfig = '\\tsconfig.json'; - if ((definition.tsconfig.length > badTsconfig.length) && (definition.tsconfig.substring(definition.tsconfig.length - badTsconfig.length, definition.tsconfig.length) === badTsconfig)) { + const badTsconfig = /\\tsconfig.*\.json/; + if (badTsconfig.exec(definition.tsconfig) !== null) { // Warn that the task has the wrong slash type - vscode.window.showWarningMessage(localize('badTsConfig', "Typescript Task in tasks.json contains \"\\\\\". Typescript tasks must use \"/\"")); + vscode.window.showWarningMessage(localize('badTsConfig', "Typescript Task in tasks.json contains \"\\\\\". Typescript tasks tsconfig must use \"/\"")); } return undefined; } diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts index 894a0b10e7a..1dad734a227 100644 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts @@ -470,17 +470,7 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer return this._taskSystem.customExecutionComplete(task, result); } - private isBadTsConfig(taskId: string | TaskIdentifier | undefined): taskId is string { - const badTsconfig = '\\tsconfig.json'; - const tsc = 'tsc'; - return typeof taskId === 'string' && (taskId.length > badTsconfig.length) && strings.equalsIgnoreCase(taskId.substring(taskId.length - badTsconfig.length, taskId.length), badTsconfig) && (taskId.substring(0, tsc.length) === tsc); - } - public getTask(folder: IWorkspaceFolder | string, identifier: string | TaskIdentifier, compareId: boolean = false): Promise { - if (this.isBadTsConfig(identifier)) { - return Promise.reject(new Error(nls.localize('badTsConfig', "Task '{0}' contains \"\\\\\". Typescript tasks must use \"/\"", identifier))); - } - const name = Types.isString(folder) ? folder : folder.name; if (this.ignoredWorkspaceFolders.some(ignored => ignored.name === name)) { return Promise.reject(new Error(nls.localize('TaskServer.folderIgnored', 'The folder {0} is ignored since it uses task version 0.1.0', name))); @@ -2289,4 +2279,4 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer this._taskSystem!.revealTask(task); }); } -} \ No newline at end of file +}