mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-28 12:54:58 +00:00
Add status bar button to toggle check on save state
This commit is contained in:
parent
33f9250d21
commit
e76d20e072
6 changed files with 63 additions and 3 deletions
|
@ -216,6 +216,39 @@ export class Config {
|
|||
),
|
||||
);
|
||||
}
|
||||
get checkOnSave() {
|
||||
return this.get<boolean>("checkOnSave") ?? false;
|
||||
}
|
||||
async toggleCheckOnSave() {
|
||||
const config = this.cfg.inspect<boolean>("checkOnSave") ?? { key: "checkOnSave" };
|
||||
let overrideInLanguage;
|
||||
let target;
|
||||
let value;
|
||||
if (
|
||||
config.workspaceFolderValue !== undefined ||
|
||||
config.workspaceFolderLanguageValue !== undefined
|
||||
) {
|
||||
target = vscode.ConfigurationTarget.WorkspaceFolder;
|
||||
overrideInLanguage = config.workspaceFolderLanguageValue;
|
||||
value = config.workspaceFolderValue || config.workspaceFolderLanguageValue;
|
||||
} else if (
|
||||
config.workspaceValue !== undefined ||
|
||||
config.workspaceLanguageValue !== undefined
|
||||
) {
|
||||
target = vscode.ConfigurationTarget.Workspace;
|
||||
overrideInLanguage = config.workspaceLanguageValue;
|
||||
value = config.workspaceValue || config.workspaceLanguageValue;
|
||||
} else if (config.globalValue !== undefined || config.globalLanguageValue !== undefined) {
|
||||
target = vscode.ConfigurationTarget.Global;
|
||||
overrideInLanguage = config.globalLanguageValue;
|
||||
value = config.globalValue || config.globalLanguageValue;
|
||||
} else if (config.defaultValue !== undefined || config.defaultLanguageValue !== undefined) {
|
||||
overrideInLanguage = config.defaultLanguageValue;
|
||||
value = config.defaultValue || config.defaultLanguageValue;
|
||||
}
|
||||
await this.cfg.update("checkOnSave", !(value || false), target || null, overrideInLanguage);
|
||||
}
|
||||
|
||||
get traceExtension() {
|
||||
return this.get<boolean>("trace.extension");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue