From def89af1eff41291df4d83e38c2ada8ad9931266 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Wed, 13 Jul 2022 13:16:35 +0200 Subject: [PATCH] fix: Fix VSCode status bar tooltip not showing the error messages --- editors/code/src/ctx.ts | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/editors/code/src/ctx.ts b/editors/code/src/ctx.ts index 992c3d5de69..f2d47370105 100644 --- a/editors/code/src/ctx.ts +++ b/editors/code/src/ctx.ts @@ -77,34 +77,35 @@ export class Ctx { setServerStatus(status: ServerStatusParams) { let icon = ""; + const statusBar = this.statusBar; switch (status.health) { case "ok": - this.statusBar.tooltip = status.message ?? "Ready"; - this.statusBar.command = undefined; - this.statusBar.color = undefined; - this.statusBar.backgroundColor = undefined; + statusBar.tooltip = status.message ?? "Ready"; + statusBar.command = undefined; + statusBar.color = undefined; + statusBar.backgroundColor = undefined; break; case "warning": - this.statusBar.tooltip += "\nClick to reload."; - this.statusBar.command = "rust-analyzer.reloadWorkspace"; - this.statusBar.color = new vscode.ThemeColor("statusBarItem.warningForeground"); - this.statusBar.backgroundColor = new vscode.ThemeColor( + statusBar.tooltip = + (status.message ? status.message + "\n" : "") + "Click to reload."; + + statusBar.command = "rust-analyzer.reloadWorkspace"; + statusBar.color = new vscode.ThemeColor("statusBarItem.warningForeground"); + statusBar.backgroundColor = new vscode.ThemeColor( "statusBarItem.warningBackground" ); icon = "$(warning) "; break; case "error": - this.statusBar.tooltip += "\nClick to reload."; - this.statusBar.command = "rust-analyzer.reloadWorkspace"; - this.statusBar.color = new vscode.ThemeColor("statusBarItem.errorForeground"); - this.statusBar.backgroundColor = new vscode.ThemeColor( - "statusBarItem.errorBackground" - ); + statusBar.tooltip += "\nClick to reload."; + statusBar.command = "rust-analyzer.reloadWorkspace"; + statusBar.color = new vscode.ThemeColor("statusBarItem.errorForeground"); + statusBar.backgroundColor = new vscode.ThemeColor("statusBarItem.errorBackground"); icon = "$(error) "; break; } if (!status.quiescent) icon = "$(sync~spin) "; - this.statusBar.text = `${icon}rust-analyzer`; + statusBar.text = `${icon}rust-analyzer`; } pushCleanup(d: Disposable) {