@@ -27,6 +27,7 @@ import { logger, initializeLogFile } from './log';
2727import glob = require( 'glob' ) ;
2828import { serverTasks } from './serverTasks' ;
2929import { serverTaskPresenter } from './serverTaskPresenter' ;
30+ import { serverStatus , ServerStatusKind } from './serverStatus' ;
3031
3132let languageClient : LanguageClient ;
3233const jdtEventEmitter = new EventEmitter < Uri > ( ) ;
@@ -185,6 +186,17 @@ export function activate(context: ExtensionContext): Promise<ExtensionAPI> {
185186
186187 commands . executeCommand ( Commands . SHOW_SERVER_TASK_STATUS ) ;
187188
189+ serverStatus . initialize ( ) ;
190+ serverStatus . onServerStatusChanged ( status => {
191+ if ( status === ServerStatusKind . Busy ) {
192+ item . text = '$(sync~spin)' ;
193+ } else if ( status === ServerStatusKind . Error ) {
194+ item . text = '$(thumbsdown)' ;
195+ } else {
196+ item . text = '$(thumbsup)' ;
197+ }
198+ } ) ;
199+
188200 let serverOptions ;
189201 const port = process . env [ 'SERVER_PORT' ] ;
190202 if ( ! port ) {
@@ -216,7 +228,7 @@ export function activate(context: ExtensionContext): Promise<ExtensionAPI> {
216228 languageClient . onNotification ( StatusNotification . type , ( report ) => {
217229 switch ( report . type ) {
218230 case 'Started' :
219- item . text = '$(thumbsup)' ;
231+ serverStatus . updateServerStatus ( ServerStatusKind . Ready ) ;
220232 commands . executeCommand ( 'setContext' , 'javaLSReady' , true ) ;
221233 resolve ( {
222234 apiVersion : ExtensionApiVersion ,
@@ -227,7 +239,7 @@ export function activate(context: ExtensionContext): Promise<ExtensionAPI> {
227239 } ) ;
228240 break ;
229241 case 'Error' :
230- item . text = '$(thumbsdown)' ;
242+ serverStatus . updateServerStatus ( ServerStatusKind . Error ) ;
231243 toggleItem ( window . activeTextEditor , item ) ;
232244 resolve ( {
233245 apiVersion : ExtensionApiVersion ,
0 commit comments