@@ -15,13 +15,13 @@ import QuickOpen = require('vs/base/parts/quickopen/common/quickOpen');
1515import Model = require( 'vs/base/parts/quickopen/browser/quickOpenModel' ) ;
1616import { IQuickOpenService } from 'vs/platform/quickOpen/common/quickOpen' ;
1717
18- import { Task , TaskSourceKind } from 'vs/workbench/parts/tasks/common/tasks' ;
18+ import { Task , CustomTask , ContributedTask } from 'vs/workbench/parts/tasks/common/tasks' ;
1919import { ITaskService , RunOptions } from 'vs/workbench/parts/tasks/common/taskService' ;
2020import { ActionBarContributor , ContributableActionProvider } from 'vs/workbench/browser/actions' ;
2121
2222export class TaskEntry extends Model . QuickOpenEntry {
2323
24- constructor ( protected taskService : ITaskService , protected quickOpenService : IQuickOpenService , protected _task : Task , highlights : Model . IHighlight [ ] = [ ] ) {
24+ constructor ( protected taskService : ITaskService , protected quickOpenService : IQuickOpenService , protected _task : CustomTask | ContributedTask , highlights : Model . IHighlight [ ] = [ ] ) {
2525 super ( highlights ) ;
2626 }
2727
@@ -33,11 +33,11 @@ export class TaskEntry extends Model.QuickOpenEntry {
3333 return nls . localize ( 'entryAriaLabel' , "{0}, tasks" , this . getLabel ( ) ) ;
3434 }
3535
36- public get task ( ) : Task {
36+ public get task ( ) : CustomTask | ContributedTask {
3737 return this . _task ;
3838 }
3939
40- protected doRun ( task : Task , options ?: RunOptions ) : boolean {
40+ protected doRun ( task : CustomTask | ContributedTask , options ?: RunOptions ) : boolean {
4141 this . taskService . run ( task , options ) ;
4242 if ( task . command . presentation . focus ) {
4343 this . quickOpenService . close ( ) ;
@@ -55,7 +55,7 @@ export class TaskGroupEntry extends Model.QuickOpenEntryGroup {
5555
5656export abstract class QuickOpenHandler extends Quickopen . QuickOpenHandler {
5757
58- private tasks : TPromise < Task [ ] > ;
58+ private tasks : TPromise < ( CustomTask | ContributedTask ) [ ] > ;
5959
6060
6161 constructor (
@@ -83,10 +83,10 @@ export abstract class QuickOpenHandler extends Quickopen.QuickOpenHandler {
8383 return new Model . QuickOpenModel ( entries ) ;
8484 }
8585 let recentlyUsedTasks = this . taskService . getRecentlyUsedTasks ( ) ;
86- let recent : Task [ ] = [ ] ;
87- let configured : Task [ ] = [ ] ;
88- let detected : Task [ ] = [ ] ;
89- let taskMap : IStringDictionary < Task > = Object . create ( null ) ;
86+ let recent : ( CustomTask | ContributedTask ) [ ] = [ ] ;
87+ let configured : CustomTask [ ] = [ ] ;
88+ let detected : ContributedTask [ ] = [ ] ;
89+ let taskMap : IStringDictionary < CustomTask | ContributedTask > = Object . create ( null ) ;
9090 tasks . forEach ( task => taskMap [ Task . getKey ( task ) ] = task ) ;
9191 recentlyUsedTasks . keys ( ) . forEach ( key => {
9292 let task = taskMap [ key ] ;
@@ -96,7 +96,7 @@ export abstract class QuickOpenHandler extends Quickopen.QuickOpenHandler {
9696 } ) ;
9797 for ( let task of tasks ) {
9898 if ( ! recentlyUsedTasks . has ( Task . getKey ( task ) ) ) {
99- if ( task . _source . kind === TaskSourceKind . Workspace ) {
99+ if ( CustomTask . is ( task ) ) {
100100 configured . push ( task ) ;
101101 } else {
102102 detected . push ( task ) ;
@@ -114,7 +114,7 @@ export abstract class QuickOpenHandler extends Quickopen.QuickOpenHandler {
114114 } ) ;
115115 }
116116
117- private fillEntries ( entries : Model . QuickOpenEntry [ ] , input : string , tasks : Task [ ] , groupLabel : string , withBorder : boolean = false ) {
117+ private fillEntries ( entries : Model . QuickOpenEntry [ ] , input : string , tasks : ( CustomTask | ContributedTask ) [ ] , groupLabel : string , withBorder : boolean = false ) {
118118 let first = true ;
119119 for ( let task of tasks ) {
120120 let highlights = Filters . matchesFuzzy ( input , task . _label ) ;
@@ -130,9 +130,9 @@ export abstract class QuickOpenHandler extends Quickopen.QuickOpenHandler {
130130 }
131131 }
132132
133- protected abstract getTasks ( ) : TPromise < Task [ ] > ;
133+ protected abstract getTasks ( ) : TPromise < ( CustomTask | ContributedTask ) [ ] > ;
134134
135- protected abstract createEntry ( task : Task , highlights : Model . IHighlight [ ] ) : TaskEntry ;
135+ protected abstract createEntry ( task : CustomTask | ContributedTask , highlights : Model . IHighlight [ ] ) : TaskEntry ;
136136
137137 public getAutoFocus ( input : string ) : QuickOpen . IAutoFocus {
138138 return {
@@ -146,7 +146,7 @@ class CustomizeTaskAction extends Action {
146146 private static ID = 'workbench.action.tasks.customizeTask' ;
147147 private static LABEL = nls . localize ( 'customizeTask' , "Configure Task" ) ;
148148
149- constructor ( private taskService : ITaskService , private quickOpenService : IQuickOpenService , private task : Task ) {
149+ constructor ( private taskService : ITaskService , private quickOpenService : IQuickOpenService , private task : CustomTask | ContributedTask ) {
150150 super ( CustomizeTaskAction . ID , CustomizeTaskAction . LABEL ) ;
151151 this . updateClass ( ) ;
152152 }
@@ -156,9 +156,15 @@ class CustomizeTaskAction extends Action {
156156 }
157157
158158 public run ( context : any ) : TPromise < any > {
159- return this . taskService . customize ( this . task , undefined , true ) . then ( ( ) => {
160- this . quickOpenService . close ( ) ;
161- } ) ;
159+ if ( ContributedTask . is ( this . task ) ) {
160+ return this . taskService . customize ( this . task , undefined , true ) . then ( ( ) => {
161+ this . quickOpenService . close ( ) ;
162+ } ) ;
163+ } else {
164+ return this . taskService . openConfig ( this . task ) . then ( ( ) => {
165+ this . quickOpenService . close ( ) ;
166+ } ) ;
167+ }
162168 }
163169}
164170
@@ -177,13 +183,13 @@ export class QuickOpenActionContributor extends ActionBarContributor {
177183 public getActions ( context : any ) : IAction [ ] {
178184 let actions : Action [ ] = [ ] ;
179185 let task = this . getTask ( context ) ;
180- if ( task && task . _source . kind === TaskSourceKind . Extension ) {
186+ if ( task && ContributedTask . is ( task ) || CustomTask . is ( task ) ) {
181187 actions . push ( new CustomizeTaskAction ( this . taskService , this . quickOpenService , task ) ) ;
182188 }
183189 return actions ;
184190 }
185191
186- private getTask ( context : any ) : Task {
192+ private getTask ( context : any ) : CustomTask | ContributedTask {
187193 if ( ! context ) {
188194 return undefined ;
189195 }
0 commit comments