diff options
| author | bors <bors@rust-lang.org> | 2023-03-10 10:12:15 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-03-10 10:12:15 +0000 |
| commit | 070f8f8578c5d68364c2950bec5c8b33db35800a (patch) | |
| tree | ee9f8a10b5470260561698707a076cf1b562eb10 /editors/code/src | |
| parent | 1b5bba45354f639fc55c82c8267902ad79cde6ca (diff) | |
| parent | c03775e4779bd48a2607cbd04fb0e9d4fa5b92cb (diff) | |
| download | rust-070f8f8578c5d68364c2950bec5c8b33db35800a.tar.gz rust-070f8f8578c5d68364c2950bec5c8b33db35800a.zip | |
Auto merge of #14313 - Veykril:notifs, r=Veykril
Make project loading errors less intrusive cc https://github.com/rust-lang/rust-analyzer/issues/14193 closes https://github.com/rust-lang/rust-analyzer/issues/9909 
Diffstat (limited to 'editors/code/src')
| -rw-r--r-- | editors/code/src/commands.ts | 8 | ||||
| -rw-r--r-- | editors/code/src/ctx.ts | 34 | ||||
| -rw-r--r-- | editors/code/src/main.ts | 1 |
3 files changed, 31 insertions, 12 deletions
diff --git a/editors/code/src/commands.ts b/editors/code/src/commands.ts index 70b91fe7dc8..f4a4579a92c 100644 --- a/editors/code/src/commands.ts +++ b/editors/code/src/commands.ts @@ -93,6 +93,14 @@ export function triggerParameterHints(_: CtxInit): Cmd { }; } +export function openLogs(ctx: CtxInit): Cmd { + return async () => { + if (ctx.client.outputChannel) { + ctx.client.outputChannel.show(); + } + }; +} + export function matchingBrace(ctx: CtxInit): Cmd { return async () => { const editor = ctx.activeRustEditor; diff --git a/editors/code/src/ctx.ts b/editors/code/src/ctx.ts index e2a30e0cc45..1708d47cee7 100644 --- a/editors/code/src/ctx.ts +++ b/editors/code/src/ctx.ts @@ -282,18 +282,18 @@ export class Ctx { setServerStatus(status: ServerStatusParams | { health: "stopped" }) { let icon = ""; const statusBar = this.statusBar; + statusBar.tooltip = new vscode.MarkdownString("", true); + statusBar.tooltip.isTrusted = true; switch (status.health) { case "ok": - statusBar.tooltip = (status.message ?? "Ready") + "\nClick to stop server."; - statusBar.command = "rust-analyzer.stopServer"; + statusBar.tooltip.appendText(status.message ?? "Ready"); statusBar.color = undefined; statusBar.backgroundColor = undefined; break; case "warning": - statusBar.tooltip = - (status.message ? status.message + "\n" : "") + "Click to reload."; - - statusBar.command = "rust-analyzer.reloadWorkspace"; + if (status.message) { + statusBar.tooltip.appendText(status.message); + } statusBar.color = new vscode.ThemeColor("statusBarItem.warningForeground"); statusBar.backgroundColor = new vscode.ThemeColor( "statusBarItem.warningBackground" @@ -301,22 +301,32 @@ export class Ctx { icon = "$(warning) "; break; case "error": - statusBar.tooltip = - (status.message ? status.message + "\n" : "") + "Click to reload."; - - statusBar.command = "rust-analyzer.reloadWorkspace"; + if (status.message) { + statusBar.tooltip.appendText(status.message); + } statusBar.color = new vscode.ThemeColor("statusBarItem.errorForeground"); statusBar.backgroundColor = new vscode.ThemeColor("statusBarItem.errorBackground"); icon = "$(error) "; break; case "stopped": - statusBar.tooltip = "Server is stopped.\nClick to start."; - statusBar.command = "rust-analyzer.startServer"; + statusBar.tooltip.appendText("Server is stopped"); + statusBar.tooltip.appendMarkdown( + "\n\n[Start server](command:rust-analyzer.startServer)" + ); statusBar.color = undefined; statusBar.backgroundColor = undefined; statusBar.text = `$(stop-circle) rust-analyzer`; return; } + if (statusBar.tooltip.value) { + statusBar.tooltip.appendText("\n\n"); + } + statusBar.tooltip.appendMarkdown("[Stop server](command:rust-analyzer.stopServer)"); + statusBar.tooltip.appendMarkdown( + "\n\n[Reload Workspace](command:rust-analyzer.reloadWorkspace)" + ); + statusBar.tooltip.appendMarkdown("\n\n[Restart server](command:rust-analyzer.startServer)"); + statusBar.tooltip.appendMarkdown("\n\n[Open logs](command:rust-analyzer.openLogs)"); if (!status.quiescent) icon = "$(sync~spin) "; statusBar.text = `${icon}rust-analyzer`; } diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts index 1eb01f30c1e..8a2412af849 100644 --- a/editors/code/src/main.ts +++ b/editors/code/src/main.ts @@ -188,5 +188,6 @@ function createCommands(): Record<string, CommandFactory> { runSingle: { enabled: commands.runSingle }, showReferences: { enabled: commands.showReferences }, triggerParameterHints: { enabled: commands.triggerParameterHints }, + openLogs: { enabled: commands.openLogs }, }; } |
