Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'editors/code/src/ctx.ts')
-rw-r--r--editors/code/src/ctx.ts18
1 files changed, 16 insertions, 2 deletions
diff --git a/editors/code/src/ctx.ts b/editors/code/src/ctx.ts
index 16c14ca54f..363a7a82e6 100644
--- a/editors/code/src/ctx.ts
+++ b/editors/code/src/ctx.ts
@@ -94,6 +94,7 @@ export class Ctx {
private unlinkedFiles: vscode.Uri[];
private _dependencies: RustDependenciesProvider | undefined;
private _treeView: vscode.TreeView<Dependency | DependencyFile | DependencyId> | undefined;
+ private lastStatus: ServerStatusParams | { health: "stopped" } = { health: "stopped" };
get client() {
return this._client;
@@ -404,7 +405,15 @@ export class Ctx {
}
setServerStatus(status: ServerStatusParams | { health: "stopped" }) {
+ this.lastStatus = status;
+ this.updateStatusBarItem();
+ }
+ refreshServerStatus() {
+ this.updateStatusBarItem();
+ }
+ private updateStatusBarItem() {
let icon = "";
+ const status = this.lastStatus;
const statusBar = this.statusBar;
statusBar.show();
statusBar.tooltip = new vscode.MarkdownString("", true);
@@ -447,13 +456,18 @@ export class Ctx {
"statusBarItem.warningBackground",
);
statusBar.command = "rust-analyzer.startServer";
- statusBar.text = `$(stop-circle) rust-analyzer`;
+ statusBar.text = "$(stop-circle) rust-analyzer";
return;
}
if (statusBar.tooltip.value) {
statusBar.tooltip.appendMarkdown("\n\n---\n\n");
}
- statusBar.tooltip.appendMarkdown("\n\n[Open logs](command:rust-analyzer.openLogs)");
+ statusBar.tooltip.appendMarkdown("\n\n[Open Logs](command:rust-analyzer.openLogs)");
+ statusBar.tooltip.appendMarkdown(
+ `\n\n[${
+ this.config.checkOnSave ? "Disable" : "Enable"
+ } Check on Save](command:rust-analyzer.toggleCheckOnSave)`,
+ );
statusBar.tooltip.appendMarkdown(
"\n\n[Reload Workspace](command:rust-analyzer.reloadWorkspace)",
);