Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--editors/code/package.json13
-rw-r--r--editors/code/src/config.ts4
-rw-r--r--editors/code/src/ctx.ts6
3 files changed, 22 insertions, 1 deletions
diff --git a/editors/code/package.json b/editors/code/package.json
index 6395885663..349f49465e 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -371,6 +371,19 @@
],
"markdownDescription": "Problem matchers to use for `rust-analyzer.run` command, eg `[\"$rustc\", \"$rust-panic\"]`."
},
+ "rust-analyzer.statusBar.clickAction": {
+ "type": "string",
+ "enum": [
+ "stopServer",
+ "openLogs"
+ ],
+ "enumDescriptions": [
+ "Stop Server",
+ "Open Logs"
+ ],
+ "default": "openLogs",
+ "markdownDescription": "Action to run when clicking the extension status bar item."
+ },
"rust-analyzer.server.path": {
"type": [
"null",
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts
index 9821aee6f9..987d936943 100644
--- a/editors/code/src/config.ts
+++ b/editors/code/src/config.ts
@@ -329,6 +329,10 @@ export class Config {
get showDependenciesExplorer() {
return this.get<boolean>("showDependenciesExplorer");
}
+
+ get statusBarClickAction() {
+ return this.get<string>("statusBar.clickAction");
+ }
}
// the optional `cb?` parameter is meant to be used to add additional
diff --git a/editors/code/src/ctx.ts b/editors/code/src/ctx.ts
index 904efa4d5e..84d1ad98bd 100644
--- a/editors/code/src/ctx.ts
+++ b/editors/code/src/ctx.ts
@@ -400,7 +400,11 @@ export class Ctx {
statusBar.tooltip.appendText(status.message ?? "Ready");
statusBar.color = undefined;
statusBar.backgroundColor = undefined;
- statusBar.command = "rust-analyzer.openLogs";
+ if (this.config.statusBarClickAction === "stopServer") {
+ statusBar.command = "rust-analyzer.stopServer";
+ } else {
+ statusBar.command = "rust-analyzer.openLogs";
+ }
this.dependencies?.refresh();
break;
case "warning":