diff options
| author | Lukas Wirth <lukastw97@gmail.com> | 2023-08-12 08:25:51 +0200 |
|---|---|---|
| committer | Lukas Wirth <lukastw97@gmail.com> | 2023-08-15 11:39:53 +0200 |
| commit | e76d20e072cd25ca2df21ef51e973bf666f4c840 (patch) | |
| tree | a11fc842194b9c985c8f1531fe19d061e6a43728 /editors/code/src/config.ts | |
| parent | 33f9250d2139fa00038736515b9e22c51c419c01 (diff) | |
| download | rust-e76d20e072cd25ca2df21ef51e973bf666f4c840.tar.gz rust-e76d20e072cd25ca2df21ef51e973bf666f4c840.zip | |
Add status bar button to toggle check on save state
Diffstat (limited to 'editors/code/src/config.ts')
| -rw-r--r-- | editors/code/src/config.ts | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts index 0e64054c11d..39e2f767c76 100644 --- a/editors/code/src/config.ts +++ b/editors/code/src/config.ts @@ -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"); } |
