@@ -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 ) ;
0 commit comments