@@ -131,38 +131,31 @@ class NoTasksTreeItem extends TreeItem {
131131}
132132
133133export class GradleTasksTreeDataProvider implements TreeDataProvider < TreeItem > {
134+ private taskItemsPromise : Thenable < Task [ ] > | undefined = undefined ;
134135 private taskTree :
135136 | Folder [ ]
136137 | GradleTreeItem [ ]
137138 | NoTasksTreeItem [ ]
138139 | null = null ;
139- private extensionContext : ExtensionContext ;
140140 private _onDidChangeTreeData : EventEmitter < TreeItem | null > = new EventEmitter < TreeItem | null > ( ) ;
141141 readonly onDidChangeTreeData : Event < TreeItem | null > = this
142142 . _onDidChangeTreeData . event ;
143143
144- constructor ( context : ExtensionContext ) {
145- this . extensionContext = context ;
146- const subscriptions = context . subscriptions ;
147- subscriptions . push (
148- commands . registerCommand ( 'gradle.runTask' , this . runTask , this )
149- ) ;
150- subscriptions . push (
151- commands . registerCommand ( 'gradle.refresh' , this . refresh , this )
152- ) ;
153- }
144+ constructor ( private readonly extensionContext : ExtensionContext ) { }
154145
155- private async runTask ( taskItem : GradleTaskItem ) {
146+ runTask ( taskItem : GradleTaskItem ) {
156147 if ( taskItem && taskItem . task ) {
157148 tasks . executeTask ( taskItem . task ) ;
158149 }
159150 }
160151
161- public refresh ( ) {
152+ refresh ( ) {
162153 invalidateTasksCache ( ) ;
163154 enableTaskDetection ( ) ;
164155 this . taskTree = null ;
156+ this . taskItemsPromise = tasks . fetchTasks ( { type : 'gradle' } ) ;
165157 this . _onDidChangeTreeData . fire ( ) ;
158+ return this . taskItemsPromise ;
166159 }
167160
168161 getTreeItem ( element : TreeItem ) : TreeItem {
@@ -187,7 +180,7 @@ export class GradleTasksTreeDataProvider implements TreeDataProvider<TreeItem> {
187180
188181 async getChildren ( element ?: TreeItem ) : Promise < TreeItem [ ] > {
189182 if ( ! this . taskTree ) {
190- const taskItems = await tasks . fetchTasks ( { type : 'gradle' } ) ;
183+ const taskItems = await this . taskItemsPromise ;
191184 if ( taskItems ) {
192185 this . taskTree = this . buildTaskTree ( taskItems ) ;
193186 if ( this . taskTree . length === 0 ) {
0 commit comments