@@ -68,7 +68,9 @@ export class NewUI implements UI {
68
68
private codeAnalysisTotal : number = 0 ;
69
69
private readonly workspaceParsingRunningText : string = localize ( "running.tagparser.text" , "Parsing Workspace" ) ;
70
70
private readonly workspaceParsingPausedText : string = localize ( "paused.tagparser.text" , "Parsing Workspace: Paused" ) ;
71
- private readonly workspaceParseingDoneText : string = localize ( "complete.tagparser.text" , "Parsing Complete" ) ;
71
+ private readonly workspaceParsingDoneText : string = localize ( "complete.tagparser.text" , "Parsing Complete" ) ;
72
+ private readonly workspaceParsingInitializing : string = localize ( "initializing.tagparser.text" , "Initializing Workspace" ) ;
73
+ private readonly workspaceParsingIndexing : string = localize ( "indexing.tagparser.text" , "Indexing Workspace" ) ;
72
74
private workspaceParsingStatus : string = "" ;
73
75
private workspaceParsingProgress : string = "" ;
74
76
private readonly workspaceRescanText = localize ( "rescan.tagparse.text" , "Rescan Workspace" ) ;
@@ -109,7 +111,7 @@ export class NewUI implements UI {
109
111
110
112
this . browseEngineStatusBarItem = vscode . languages . createLanguageStatusItem ( `cpptools.status.${ LanguageStatusPriority . Mid } .tagparser` , documentSelector ) ;
111
113
this . browseEngineStatusBarItem . name = localize ( "cpptools.status.tagparser" , "C/C++ Tag Parser Status" ) ;
112
- this . browseEngineStatusBarItem . detail = localize ( "indexing.files.tooltip " , "Indexing Workspace " ) ;
114
+ this . browseEngineStatusBarItem . detail = localize ( "cpptools.detail.tagparser " , "Initializing... " ) ;
113
115
this . browseEngineStatusBarItem . text = "$(database)" ;
114
116
this . browseEngineStatusBarItem . command = {
115
117
command : "C_Cpp.RescanWorkspaceUI_Telemetry" ,
@@ -143,27 +145,37 @@ export class NewUI implements UI {
143
145
}
144
146
}
145
147
148
+ private setIsInitializingWorkspace ( val : boolean ) : void {
149
+ if ( val ) {
150
+ this . browseEngineStatusBarItem . text = "$(database)" ;
151
+ this . browseEngineStatusBarItem . detail = this . workspaceParsingInitializing ;
152
+ }
153
+ }
154
+ private setIsIndexingWorkspace ( val : boolean ) : void {
155
+ if ( val ) {
156
+ this . browseEngineStatusBarItem . text = "$(database)" ;
157
+ this . browseEngineStatusBarItem . detail = this . workspaceParsingIndexing ;
158
+ }
159
+ }
160
+
146
161
private dbTimeout ?: NodeJS . Timeout ;
147
162
private setIsParsingWorkspace ( val : boolean ) : void {
148
163
this . isParsingWorkspace = val ;
149
164
const showIcon : boolean = val || this . isParsingFiles ;
150
- const twoStatus : boolean = val && this . isParsingFiles ;
151
165
152
166
// Leave this outside for more realtime respone
153
167
this . browseEngineStatusBarItem . busy = showIcon ;
154
168
155
169
if ( showIcon ) {
156
170
this . browseEngineStatusBarItem . text = "$(database)" ;
157
- this . browseEngineStatusBarItem . detail = ( this . isParsingFiles ? this . parsingFilesTooltip : "" )
158
- + ( twoStatus ? " | " : "" )
159
- + ( val ? this . workspaceParsingStatus : "" ) ;
171
+ this . browseEngineStatusBarItem . detail = this . tagParseText ( ) ;
160
172
161
173
if ( this . dbTimeout ) {
162
174
clearTimeout ( this . dbTimeout ) ;
163
175
}
164
176
} else {
165
177
this . dbTimeout = setTimeout ( ( ) => {
166
- this . browseEngineStatusBarItem . text = this . workspaceParseingDoneText ;
178
+ this . browseEngineStatusBarItem . text = this . workspaceParsingDoneText ;
167
179
this . browseEngineStatusBarItem . detail = "" ;
168
180
this . browseEngineStatusBarItem . command = {
169
181
command : "C_Cpp.RescanWorkspaceUI_Telemetry" ,
@@ -173,6 +185,17 @@ export class NewUI implements UI {
173
185
}
174
186
}
175
187
188
+ private tagParseText ( ) : string {
189
+ if ( this . isParsingWorkspacePaused ) {
190
+ const twoStatus : boolean = this . isParsingFiles && this . isParsingWorkspace ;
191
+ return ( this . isParsingFiles ? this . parsingFilesTooltip : "" )
192
+ + ( twoStatus ? " | " : "" )
193
+ + ( this . isParsingWorkspace ? this . workspaceParsingStatus : "" ) ;
194
+ } else {
195
+ return this . isParsingWorkspace ? this . workspaceParsingStatus : this . parsingFilesTooltip ;
196
+ }
197
+ }
198
+
176
199
private setIsParsingWorkspacePausable ( val : boolean ) : void {
177
200
if ( val && this . isParsingWorkspace ) {
178
201
this . browseEngineStatusBarItem . command = {
@@ -187,7 +210,7 @@ export class NewUI implements UI {
187
210
this . browseEngineStatusBarItem . busy = ! val || this . isParsingFiles ;
188
211
this . browseEngineStatusBarItem . text = "$(database)" ;
189
212
this . workspaceParsingStatus = val ? this . workspaceParsingPausedText : this . workspaceParsingRunningText ;
190
- this . browseEngineStatusBarItem . detail = ( this . isParsingFiles ? ` ${ this . parsingFilesTooltip } | ` : "" ) + this . workspaceParsingStatus ;
213
+ this . browseEngineStatusBarItem . detail = this . tagParseText ( ) ;
191
214
this . browseEngineStatusBarItem . command = val ? {
192
215
command : "C_Cpp.ResumeParsingUI_Telemetry" ,
193
216
title : localize ( "tagparser.resume.text" , "Resume" )
@@ -210,24 +233,21 @@ export class NewUI implements UI {
210
233
private setIsParsingFiles ( val : boolean ) : void {
211
234
212
235
this . isParsingFiles = val ;
213
- const showIcon : boolean = val || ( ! this . isParsingWorkspacePaused && this . isParsingWorkspace ) ;
214
- const twoStatus : boolean = val && this . isParsingWorkspace ;
236
+ const showIcon : boolean = val || this . isParsingWorkspace ;
215
237
216
238
// Leave this outside for more realtime respone
217
- this . browseEngineStatusBarItem . busy = showIcon ;
239
+ this . browseEngineStatusBarItem . busy = val || ( ! this . isParsingWorkspacePaused && this . isParsingWorkspace ) ;
218
240
219
241
if ( showIcon ) {
220
242
this . browseEngineStatusBarItem . text = "$(database)" ;
221
- this . browseEngineStatusBarItem . detail = ( val ? this . parsingFilesTooltip : "" )
222
- + ( twoStatus ? " | " : "" )
223
- + ( this . isParsingWorkspace ? this . workspaceParsingStatus : "" ) ;
243
+ this . browseEngineStatusBarItem . detail = this . tagParseText ( ) ;
224
244
225
245
if ( this . dbTimeout ) {
226
246
clearTimeout ( this . dbTimeout ) ;
227
247
}
228
- } else if ( ! this . isParsingWorkspace && ! val ) {
248
+ } else {
229
249
this . dbTimeout = setTimeout ( ( ) => {
230
- this . browseEngineStatusBarItem . text = this . workspaceParseingDoneText ;
250
+ this . browseEngineStatusBarItem . text = this . workspaceParsingDoneText ;
231
251
this . browseEngineStatusBarItem . detail = "" ;
232
252
this . browseEngineStatusBarItem . command = {
233
253
command : "C_Cpp.RescanWorkspaceUI_Telemetry" ,
@@ -376,6 +396,8 @@ export class NewUI implements UI {
376
396
}
377
397
378
398
public bind ( client : Client ) : void {
399
+ client . InitializingWorkspaceChanged ( value => { this . setIsInitializingWorkspace ( value ) ; } ) ;
400
+ client . IndexingWorkspaceChanged ( value => { this . setIsIndexingWorkspace ( value ) ; } ) ;
379
401
client . ParsingWorkspaceChanged ( value => { this . setIsParsingWorkspace ( value ) ; } ) ;
380
402
client . ParsingWorkspacePausableChanged ( value => { this . setIsParsingWorkspacePausable ( value ) ; } ) ;
381
403
client . ParsingWorkspacePausedChanged ( value => { this . setIsParsingWorkspacePaused ( value ) ; } ) ;
0 commit comments