@@ -39,12 +39,14 @@ export function activate(context: vscode.ExtensionContext) {
3939 let lastSavedFileName : string ;
4040 const MIN_UPDATE_FREQUENCE_MS = 30000 ; // 30 seconds
4141
42+ let gtmStatusBar = new GTMStatusBar ( )
43+
4244 function handleUpdateEvent ( fileName : string ) {
4345 const now = new Date ( ) ;
4446 // if a new file is being saved OR it have been at least MIN_UPDATE_FREQUENCE_MS, record it
4547 if ( fileName !== lastSavedFileName || ( now . getTime ( ) - lastUpdated . getTime ( ) ) >= MIN_UPDATE_FREQUENCE_MS ) {
4648 run_cmd ( 'gtm' , [ 'record' , '--status' , lastSavedFileName ] )
47- . then ( ( res : Result ) => vscode . window . setStatusBarMessage ( res . output ) ) ;
49+ . then ( ( res : Result ) => gtmStatusBar . updateStatus ( res . output ) ) ;
4850 lastSavedFileName = fileName ;
4951 lastUpdated = now ;
5052 }
@@ -60,4 +62,27 @@ export function activate(context: vscode.ExtensionContext) {
6062 vscode . window . onDidChangeActiveTextEditor ( ( e :vscode . TextEditor ) => handleUpdateEvent ( e . document . fileName ) , this , subscriptions ) ;
6163}
6264
65+ class GTMStatusBar {
66+ private statusBarItem : vscode . StatusBarItem ;
67+
68+ public updateStatus ( statusText : string ) {
69+
70+ // Create as needed
71+ if ( ! this . statusBarItem ) {
72+ this . statusBarItem = vscode . window . createStatusBarItem ( vscode . StatusBarAlignment . Left ) ;
73+ }
74+
75+ // Get the current text editor
76+ let editor = vscode . window . activeTextEditor ;
77+ if ( ! editor ) {
78+ this . statusBarItem . hide ( ) ;
79+ return ;
80+ }
81+
82+ // Update the status bar
83+ this . statusBarItem . text = statusText ;
84+ this . statusBarItem . show ( ) ;
85+ }
86+ }
87+
6388// always active, so no need to deactivate
0 commit comments