@@ -173,33 +173,47 @@ export class HistoryTreeDataProvider extends DisposableObject implements TreeDat
173173
174174 // Populate the icon and the context value. We use the context value to
175175 // control which commands are visible in the context menu.
176- let hasResults ;
176+ treeItem . iconPath = this . getIconPath ( element ) ;
177+ treeItem . contextValue = await this . getContextValue ( element ) ;
178+
179+ return treeItem ;
180+ }
181+
182+ private getIconPath ( element : QueryHistoryInfo ) : ThemeIcon | string {
177183 switch ( element . status ) {
178184 case QueryStatus . InProgress :
179- treeItem . iconPath = new ThemeIcon ( 'sync~spin' ) ;
180- treeItem . contextValue = element . t === 'local' ? 'inProgressResultsItem' : 'inProgressRemoteResultsItem' ;
181- break ;
185+ return new ThemeIcon ( 'sync~spin' ) ;
182186 case QueryStatus . Completed :
183187 if ( element . t === 'local' ) {
184- hasResults = await element . completedQuery ?. query . hasInterpretedResults ( ) ;
185- treeItem . iconPath = this . localSuccessIconPath ;
186- treeItem . contextValue = hasResults
188+ return this . localSuccessIconPath ;
189+ } else {
190+ return this . remoteSuccessIconPath ;
191+ }
192+ case QueryStatus . Failed :
193+ return this . failedIconPath ;
194+ default :
195+ assertNever ( element . status ) ;
196+ }
197+ }
198+
199+ private async getContextValue ( element : QueryHistoryInfo ) : Promise < string > {
200+ switch ( element . status ) {
201+ case QueryStatus . InProgress :
202+ return element . t === 'local' ? 'inProgressResultsItem' : 'inProgressRemoteResultsItem' ;
203+ case QueryStatus . Completed :
204+ if ( element . t === 'local' ) {
205+ const hasResults = await element . completedQuery ?. query . hasInterpretedResults ( ) ;
206+ return hasResults
187207 ? 'interpretedResultsItem'
188208 : 'rawResultsItem' ;
189209 } else {
190- treeItem . iconPath = this . remoteSuccessIconPath ;
191- treeItem . contextValue = 'remoteResultsItem' ;
210+ return 'remoteResultsItem' ;
192211 }
193- break ;
194212 case QueryStatus . Failed :
195- treeItem . iconPath = this . failedIconPath ;
196- treeItem . contextValue = element . t === 'local' ? 'cancelledResultsItem' : 'cancelledRemoteResultsItem' ;
197- break ;
213+ return element . t === 'local' ? 'cancelledResultsItem' : 'cancelledRemoteResultsItem' ;
198214 default :
199215 assertNever ( element . status ) ;
200216 }
201-
202- return treeItem ;
203217 }
204218
205219 getChildren (
0 commit comments