@@ -68,7 +68,9 @@ export class NewUI implements UI {
6868 private codeAnalysisTotal : number = 0 ;
6969 private readonly workspaceParsingRunningText : string = localize ( "running.tagparser.text" , "Parsing Workspace" ) ;
7070 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" ) ;
7274 private workspaceParsingStatus : string = "" ;
7375 private workspaceParsingProgress : string = "" ;
7476 private readonly workspaceRescanText = localize ( "rescan.tagparse.text" , "Rescan Workspace" ) ;
@@ -109,7 +111,7 @@ export class NewUI implements UI {
109111
110112 this . browseEngineStatusBarItem = vscode . languages . createLanguageStatusItem ( `cpptools.status.${ LanguageStatusPriority . Mid } .tagparser` , documentSelector ) ;
111113 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... " ) ;
113115 this . browseEngineStatusBarItem . text = "$(database)" ;
114116 this . browseEngineStatusBarItem . command = {
115117 command : "C_Cpp.RescanWorkspaceUI_Telemetry" ,
@@ -143,27 +145,37 @@ export class NewUI implements UI {
143145 }
144146 }
145147
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+
146161 private dbTimeout ?: NodeJS . Timeout ;
147162 private setIsParsingWorkspace ( val : boolean ) : void {
148163 this . isParsingWorkspace = val ;
149164 const showIcon : boolean = val || this . isParsingFiles ;
150- const twoStatus : boolean = val && this . isParsingFiles ;
151165
152166 // Leave this outside for more realtime respone
153167 this . browseEngineStatusBarItem . busy = showIcon ;
154168
155169 if ( showIcon ) {
156170 this . browseEngineStatusBarItem . text = "$(database)" ;
157- this . browseEngineStatusBarItem . detail = ( this . isParsingFiles ? this . parsingFilesTooltip : "" )
158- + ( twoStatus ? " | " : "" )
159- + ( val ? this . workspaceParsingStatus : "" ) ;
171+ this . browseEngineStatusBarItem . detail = this . tagParseText ( ) ;
160172
161173 if ( this . dbTimeout ) {
162174 clearTimeout ( this . dbTimeout ) ;
163175 }
164176 } else {
165177 this . dbTimeout = setTimeout ( ( ) => {
166- this . browseEngineStatusBarItem . text = this . workspaceParseingDoneText ;
178+ this . browseEngineStatusBarItem . text = this . workspaceParsingDoneText ;
167179 this . browseEngineStatusBarItem . detail = "" ;
168180 this . browseEngineStatusBarItem . command = {
169181 command : "C_Cpp.RescanWorkspaceUI_Telemetry" ,
@@ -173,6 +185,17 @@ export class NewUI implements UI {
173185 }
174186 }
175187
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+
176199 private setIsParsingWorkspacePausable ( val : boolean ) : void {
177200 if ( val && this . isParsingWorkspace ) {
178201 this . browseEngineStatusBarItem . command = {
@@ -187,7 +210,7 @@ export class NewUI implements UI {
187210 this . browseEngineStatusBarItem . busy = ! val || this . isParsingFiles ;
188211 this . browseEngineStatusBarItem . text = "$(database)" ;
189212 this . workspaceParsingStatus = val ? this . workspaceParsingPausedText : this . workspaceParsingRunningText ;
190- this . browseEngineStatusBarItem . detail = ( this . isParsingFiles ? ` ${ this . parsingFilesTooltip } | ` : "" ) + this . workspaceParsingStatus ;
213+ this . browseEngineStatusBarItem . detail = this . tagParseText ( ) ;
191214 this . browseEngineStatusBarItem . command = val ? {
192215 command : "C_Cpp.ResumeParsingUI_Telemetry" ,
193216 title : localize ( "tagparser.resume.text" , "Resume" )
@@ -210,24 +233,21 @@ export class NewUI implements UI {
210233 private setIsParsingFiles ( val : boolean ) : void {
211234
212235 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 ;
215237
216238 // Leave this outside for more realtime respone
217- this . browseEngineStatusBarItem . busy = showIcon ;
239+ this . browseEngineStatusBarItem . busy = val || ( ! this . isParsingWorkspacePaused && this . isParsingWorkspace ) ;
218240
219241 if ( showIcon ) {
220242 this . browseEngineStatusBarItem . text = "$(database)" ;
221- this . browseEngineStatusBarItem . detail = ( val ? this . parsingFilesTooltip : "" )
222- + ( twoStatus ? " | " : "" )
223- + ( this . isParsingWorkspace ? this . workspaceParsingStatus : "" ) ;
243+ this . browseEngineStatusBarItem . detail = this . tagParseText ( ) ;
224244
225245 if ( this . dbTimeout ) {
226246 clearTimeout ( this . dbTimeout ) ;
227247 }
228- } else if ( ! this . isParsingWorkspace && ! val ) {
248+ } else {
229249 this . dbTimeout = setTimeout ( ( ) => {
230- this . browseEngineStatusBarItem . text = this . workspaceParseingDoneText ;
250+ this . browseEngineStatusBarItem . text = this . workspaceParsingDoneText ;
231251 this . browseEngineStatusBarItem . detail = "" ;
232252 this . browseEngineStatusBarItem . command = {
233253 command : "C_Cpp.RescanWorkspaceUI_Telemetry" ,
@@ -376,6 +396,8 @@ export class NewUI implements UI {
376396 }
377397
378398 public bind ( client : Client ) : void {
399+ client . InitializingWorkspaceChanged ( value => { this . setIsInitializingWorkspace ( value ) ; } ) ;
400+ client . IndexingWorkspaceChanged ( value => { this . setIsIndexingWorkspace ( value ) ; } ) ;
379401 client . ParsingWorkspaceChanged ( value => { this . setIsParsingWorkspace ( value ) ; } ) ;
380402 client . ParsingWorkspacePausableChanged ( value => { this . setIsParsingWorkspacePausable ( value ) ; } ) ;
381403 client . ParsingWorkspacePausedChanged ( value => { this . setIsParsingWorkspacePaused ( value ) ; } ) ;
0 commit comments