Skip to content

Commit 22fa494

Browse files
committed
Incooperate API feedback
1 parent 2ef8e48 commit 22fa494

17 files changed

Lines changed: 410 additions & 417 deletions

File tree

.vscode/tasks.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"command": ".\\scripts\\test.bat"
4141
},
4242
"group": "test",
43-
"terminal": {
43+
"presentation": {
4444
"echo": true,
4545
"reveal": "always"
4646
}

extensions/grunt/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
},
4545
"taskTypes": [
4646
{
47-
"taskType": "grunt",
47+
"type": "grunt",
4848
"required": ["task"],
4949
"properties": {
5050
"task": {

extensions/grunt/src/main.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,15 @@ export function activate(_context: vscode.ExtensionContext): void {
3434
taskProvider.dispose();
3535
taskProvider = undefined;
3636
} else if (!taskProvider && autoDetect === 'on') {
37-
taskProvider = vscode.workspace.registerTaskProvider({
37+
taskProvider = vscode.workspace.registerTaskProvider('grunt', {
3838
provideTasks: () => {
3939
if (!detectorPromise) {
4040
detectorPromise = getGruntTasks();
4141
}
4242
return detectorPromise;
43+
},
44+
resolveTask(_task: vscode.Task): vscode.Task | undefined {
45+
return undefined;
4346
}
4447
});
4548
}
@@ -81,7 +84,7 @@ function getOutputChannel(): vscode.OutputChannel {
8184
return _channel;
8285
}
8386

84-
interface GruntTaskIdentifier extends vscode.TaskIdentifier {
87+
interface GruntTaskKind extends vscode.TaskKind {
8588
task: string;
8689
file?: string;
8790
}
@@ -150,13 +153,13 @@ async function getGruntTasks(): Promise<vscode.Task[]> {
150153
let matches = regExp.exec(line);
151154
if (matches && matches.length === 2) {
152155
let taskName = matches[1];
153-
let identifier: GruntTaskIdentifier = {
156+
let kind: GruntTaskKind = {
154157
type: 'grunt',
155158
task: taskName
156159
};
157160
let task = taskName.indexOf(' ') === -1
158-
? new vscode.ShellTask(identifier, taskName, `${command} ${taskName}`)
159-
: new vscode.ShellTask(identifier, taskName, `${command} "${taskName}"`);
161+
? new vscode.Task(kind, taskName, new vscode.ShellExecution(`${command} ${taskName}`))
162+
: new vscode.Task(kind, taskName, new vscode.ShellExecution(`${command} "${taskName}"`));
160163
result.push(task);
161164
let lowerCaseTaskName = taskName.toLowerCase();
162165
if (lowerCaseTaskName === 'build') {

extensions/gulp/package.json

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,22 @@
4141
"description": "%config.gulp.autoDetect%"
4242
}
4343
}
44-
}
44+
},
45+
"taskTypes": [
46+
{
47+
"type": "gulp",
48+
"required": ["task"],
49+
"properties": {
50+
"task": {
51+
"type": "string",
52+
"description": "The Gulp task to customize"
53+
},
54+
"file": {
55+
"type": "string",
56+
"description": "The Gulp file that provides the task. Can be omitted."
57+
}
58+
}
59+
}
60+
]
4561
}
4662
}

extensions/gulp/src/main.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,15 @@ export function activate(_context: vscode.ExtensionContext): void {
3434
taskProvider.dispose();
3535
taskProvider = undefined;
3636
} else if (!taskProvider && autoDetect === 'on') {
37-
taskProvider = vscode.workspace.registerTaskProvider({
37+
taskProvider = vscode.workspace.registerTaskProvider('gulp', {
3838
provideTasks: () => {
3939
if (!gulpPromise) {
4040
gulpPromise = getGulpTasks();
4141
}
4242
return gulpPromise;
43+
},
44+
resolveTask(_task: vscode.Task): vscode.Task | undefined {
45+
return undefined;
4346
}
4447
});
4548
}
@@ -81,7 +84,7 @@ function getOutputChannel(): vscode.OutputChannel {
8184
return _channel;
8285
}
8386

84-
interface GulpTaskIdentifier extends vscode.TaskIdentifier {
87+
interface GulpTaskKind extends vscode.TaskKind {
8588
task: string;
8689
file?: string;
8790
}
@@ -126,11 +129,11 @@ async function getGulpTasks(): Promise<vscode.Task[]> {
126129
if (line.length === 0) {
127130
continue;
128131
}
129-
let identifier: GulpTaskIdentifier = {
132+
let kind: GulpTaskKind = {
130133
type: 'gulp',
131134
task: line
132135
};
133-
let task = new vscode.ShellTask(identifier, line, `${gulpCommand} ${line}`);
136+
let task = new vscode.Task(kind, line, new vscode.ShellExecution(`${gulpCommand} ${line}`));
134137
result.push(task);
135138
let lowerCaseLine = line.toLowerCase();
136139
if (lowerCaseLine === 'build') {

extensions/jake/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
},
4545
"taskTypes": [
4646
{
47-
"taskType": "jake",
47+
"type": "jake",
4848
"required": ["task"],
4949
"properties": {
5050
"task": {

extensions/jake/src/main.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,15 @@ export function activate(_context: vscode.ExtensionContext): void {
3434
taskProvider.dispose();
3535
taskProvider = undefined;
3636
} else if (!taskProvider && autoDetect === 'on') {
37-
taskProvider = vscode.workspace.registerTaskProvider({
37+
taskProvider = vscode.workspace.registerTaskProvider('jake', {
3838
provideTasks: () => {
3939
if (!jakePromise) {
4040
jakePromise = getJakeTasks();
4141
}
4242
return jakePromise;
43+
},
44+
resolveTask(_task: vscode.Task): vscode.Task | undefined {
45+
return undefined;
4346
}
4447
});
4548
}
@@ -81,7 +84,7 @@ function getOutputChannel(): vscode.OutputChannel {
8184
return _channel;
8285
}
8386

84-
interface JakeTaskIdentifier extends vscode.TaskIdentifier {
87+
interface JakeTaskKind extends vscode.TaskKind {
8588
task: string;
8689
file?: string;
8790
}
@@ -130,11 +133,11 @@ async function getJakeTasks(): Promise<vscode.Task[]> {
130133
let matches = regExp.exec(line);
131134
if (matches && matches.length === 2) {
132135
let taskName = matches[1];
133-
let identifier: JakeTaskIdentifier = {
136+
let kind: JakeTaskKind = {
134137
type: 'jake',
135138
task: taskName
136139
};
137-
let task = new vscode.ShellTask(identifier, taskName, `${jakeCommand} ${taskName}`);
140+
let task = new vscode.Task(kind, taskName, new vscode.ShellExecution(`${jakeCommand} ${taskName}`));
138141
result.push(task);
139142
let lowerCaseLine = line.toLowerCase();
140143
if (lowerCaseLine === 'build') {

extensions/npm/package.json

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,22 @@
4141
"description": "%config.npm.autoDetect%"
4242
}
4343
}
44-
}
44+
},
45+
"taskTypes": [
46+
{
47+
"type": "npm",
48+
"required": ["script"],
49+
"properties": {
50+
"script": {
51+
"type": "string",
52+
"description": "The npm script to customize"
53+
},
54+
"file": {
55+
"type": "string",
56+
"description": "The package.json file that provides the task. Can be omitted."
57+
}
58+
}
59+
}
60+
]
4561
}
4662
}

extensions/npm/src/main.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,12 @@ export function activate(_context: vscode.ExtensionContext): void {
2323
taskProvider.dispose();
2424
taskProvider = undefined;
2525
} else if (!taskProvider && autoDetect === 'on') {
26-
taskProvider = vscode.workspace.registerTaskProvider({
26+
taskProvider = vscode.workspace.registerTaskProvider('npm', {
2727
provideTasks: () => {
2828
return getNpmScriptsAsTasks();
29+
},
30+
resolveTask(_task: vscode.Task): vscode.Task | undefined {
31+
return undefined;
2932
}
3033
});
3134
}
@@ -59,7 +62,7 @@ async function readFile(file: string): Promise<string> {
5962
});
6063
}
6164

62-
interface NpmTaskIdentifier extends vscode.TaskIdentifier {
65+
interface NpmTaskKind extends vscode.TaskKind {
6366
script: string;
6467
file?: string;
6568
}
@@ -87,11 +90,11 @@ async function getNpmScriptsAsTasks(): Promise<vscode.Task[]> {
8790

8891
const result: vscode.Task[] = [];
8992
Object.keys(json.scripts).forEach(each => {
90-
const identifier: NpmTaskIdentifier = {
93+
const kind: NpmTaskKind = {
9194
type: 'npm',
9295
script: each
9396
};
94-
const task = new vscode.ShellTask(identifier, `run ${each}`, `npm run ${each}`);
97+
const task = new vscode.Task(kind, `run ${each}`, new vscode.ShellExecution(`npm run ${each}`));
9598
const lowerCaseTaskName = each.toLowerCase();
9699
if (lowerCaseTaskName === 'build') {
97100
task.group = vscode.TaskGroup.Build;
@@ -101,7 +104,7 @@ async function getNpmScriptsAsTasks(): Promise<vscode.Task[]> {
101104
result.push(task);
102105
});
103106
// add some 'well known' npm tasks
104-
result.push(new vscode.ShellTask({ type: 'npm', script: 'install' } as NpmTaskIdentifier, `install`, `npm install`));
107+
result.push(new vscode.Task({ type: 'npm', script: 'install' } as NpmTaskKind, `install`, new vscode.ShellExecution(`npm install`)));
105108
return Promise.resolve(result);
106109
} catch (e) {
107110
return Promise.resolve(emptyTasks);

extensions/typescript/package.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,18 @@
458458
"url": "http://json.schemastore.org/typings"
459459
}
460460
],
461+
"taskTypes": [
462+
{
463+
"type": "typescript",
464+
"required": ["tsconfig"],
465+
"properties": {
466+
"tsconfig": {
467+
"type": "string",
468+
"description": "The tsconfig file that defines the TS build"
469+
}
470+
}
471+
}
472+
],
461473
"problemPatterns": [
462474
{
463475
"name": "tsc",

0 commit comments

Comments
 (0)