mirror of
https://github.com/rust-lang/rust.git
synced 2026-06-01 22:18:23 +03:00
Auto merge of #12477 - hasali19:auto-reload, r=Veykril
Restart server automatically on settings changes Closes #12476 I think this works quite well, but if you think it would be better to put it behind a setting I can do that.
This commit is contained in:
@@ -1115,6 +1115,11 @@
|
||||
"Search in current workspace and dependencies."
|
||||
]
|
||||
},
|
||||
"rust-analyzer.restartServerOnConfigChange": {
|
||||
"markdownDescription": "Whether to restart the server automatically when certain settings that require a restart are changed.",
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
"$generated-end": {}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -60,13 +60,17 @@ export class Config {
|
||||
|
||||
if (!requiresReloadOpt) return;
|
||||
|
||||
const userResponse = await vscode.window.showInformationMessage(
|
||||
`Changing "${requiresReloadOpt}" requires a reload`,
|
||||
"Reload now"
|
||||
);
|
||||
|
||||
if (userResponse === "Reload now") {
|
||||
if (this.restartServerOnConfigChange) {
|
||||
await vscode.commands.executeCommand("rust-analyzer.reload");
|
||||
} else {
|
||||
const userResponse = await vscode.window.showInformationMessage(
|
||||
`Changing "${requiresReloadOpt}" requires a reload`,
|
||||
"Reload now"
|
||||
);
|
||||
|
||||
if (userResponse === "Reload now") {
|
||||
await vscode.commands.executeCommand("rust-analyzer.reload");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,6 +123,10 @@ export class Config {
|
||||
return this.get<RunnableEnvCfg>("runnableEnv");
|
||||
}
|
||||
|
||||
get restartServerOnConfigChange() {
|
||||
return this.get<boolean>("restartServerOnConfigChange");
|
||||
}
|
||||
|
||||
get debug() {
|
||||
let sourceFileMap = this.get<Record<string, string> | "auto">("debug.sourceFileMap");
|
||||
if (sourceFileMap !== "auto") {
|
||||
|
||||
Reference in New Issue
Block a user