mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-08 09:08:48 +01:00
More loose build and test task detection
This commit is contained in:
+24
-16
@@ -89,6 +89,26 @@ interface GulpTaskKind extends vscode.TaskKind {
|
||||
file?: string;
|
||||
}
|
||||
|
||||
const buildNames: string[] = ['build', 'compile', 'watch'];
|
||||
function isBuildTask(name: string): boolean {
|
||||
for (let buildName of buildNames) {
|
||||
if (name.indexOf(buildName) !== -1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
const testNames: string[] = ['test'];
|
||||
function isTestTask(name: string): boolean {
|
||||
for (let testName of testNames) {
|
||||
if (name.indexOf(testName) !== -1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
async function getGulpTasks(): Promise<vscode.Task[]> {
|
||||
let workspaceRoot = vscode.workspace.rootPath;
|
||||
let emptyTasks: vscode.Task[] = [];
|
||||
@@ -122,8 +142,6 @@ async function getGulpTasks(): Promise<vscode.Task[]> {
|
||||
}
|
||||
let result: vscode.Task[] = [];
|
||||
if (stdout) {
|
||||
let buildTask: { task: vscode.Task | undefined, rank: number } = { task: undefined, rank: 0 };
|
||||
let testTask: { task: vscode.Task | undefined, rank: number } = { task: undefined, rank: 0 };
|
||||
let lines = stdout.split(/\r{0,1}\n/);
|
||||
for (let line of lines) {
|
||||
if (line.length === 0) {
|
||||
@@ -136,22 +154,12 @@ async function getGulpTasks(): Promise<vscode.Task[]> {
|
||||
let task = new vscode.Task(kind, line, new vscode.ShellExecution(`${gulpCommand} ${line}`));
|
||||
result.push(task);
|
||||
let lowerCaseLine = line.toLowerCase();
|
||||
if (lowerCaseLine === 'build') {
|
||||
buildTask = { task, rank: 2 };
|
||||
} else if (lowerCaseLine.indexOf('build') !== -1 && buildTask.rank < 1) {
|
||||
buildTask = { task, rank: 1 };
|
||||
} else if (lowerCaseLine === 'test') {
|
||||
testTask = { task, rank: 2 };
|
||||
} else if (lowerCaseLine.indexOf('test') !== -1 && testTask.rank < 1) {
|
||||
testTask = { task, rank: 1 };
|
||||
if (isBuildTask(lowerCaseLine)) {
|
||||
task.group = vscode.TaskGroup.Build;
|
||||
} else if (isTestTask(lowerCaseLine)) {
|
||||
task.group = vscode.TaskGroup.Test;
|
||||
}
|
||||
}
|
||||
if (buildTask.task) {
|
||||
buildTask.task.group = vscode.TaskGroup.Build;
|
||||
}
|
||||
if (testTask.task) {
|
||||
testTask.task.group = vscode.TaskGroup.Test;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user