mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-27 05:23:24 +00:00
Prompt the user to reload the window when enabling test explorer
This commit is contained in:
parent
beec6914c8
commit
34cde2cebc
1 changed files with 21 additions and 4 deletions
|
@ -19,7 +19,7 @@ export class Config {
|
|||
configureLang: vscode.Disposable | undefined;
|
||||
|
||||
readonly rootSection = "rust-analyzer";
|
||||
private readonly requiresReloadOpts = [
|
||||
private readonly requiresServerReloadOpts = [
|
||||
"cargo",
|
||||
"procMacro",
|
||||
"serverPath",
|
||||
|
@ -27,6 +27,10 @@ export class Config {
|
|||
"files",
|
||||
].map((opt) => `${this.rootSection}.${opt}`);
|
||||
|
||||
private readonly requiresWindowReloadOpts = ["testExplorer"].map(
|
||||
(opt) => `${this.rootSection}.${opt}`,
|
||||
);
|
||||
|
||||
readonly package: {
|
||||
version: string;
|
||||
releaseTag: string | null;
|
||||
|
@ -66,18 +70,31 @@ export class Config {
|
|||
|
||||
this.configureLanguage();
|
||||
|
||||
const requiresReloadOpt = this.requiresReloadOpts.find((opt) =>
|
||||
const requiresWindowReloadOpt = this.requiresWindowReloadOpts.find((opt) =>
|
||||
event.affectsConfiguration(opt),
|
||||
);
|
||||
|
||||
if (!requiresReloadOpt) return;
|
||||
if (requiresWindowReloadOpt) {
|
||||
const message = `Changing "${requiresWindowReloadOpt}" requires a window reload`;
|
||||
const userResponse = await vscode.window.showInformationMessage(message, "Reload now");
|
||||
|
||||
if (userResponse) {
|
||||
await vscode.commands.executeCommand("workbench.action.reloadWindow");
|
||||
}
|
||||
}
|
||||
|
||||
const requiresServerReloadOpt = this.requiresServerReloadOpts.find((opt) =>
|
||||
event.affectsConfiguration(opt),
|
||||
);
|
||||
|
||||
if (!requiresServerReloadOpt) return;
|
||||
|
||||
if (this.restartServerOnConfigChange) {
|
||||
await vscode.commands.executeCommand("rust-analyzer.restartServer");
|
||||
return;
|
||||
}
|
||||
|
||||
const message = `Changing "${requiresReloadOpt}" requires a server restart`;
|
||||
const message = `Changing "${requiresServerReloadOpt}" requires a server restart`;
|
||||
const userResponse = await vscode.window.showInformationMessage(message, "Restart now");
|
||||
|
||||
if (userResponse) {
|
||||
|
|
Loading…
Reference in a new issue