From 78817a319476d8af40c4f78e8c47dc958781f88f Mon Sep 17 00:00:00 2001 From: vsrs Date: Mon, 18 May 2020 10:27:00 +0300 Subject: [PATCH] Add "rust-analyzer.lens.enable" --- crates/rust-analyzer/src/config.rs | 15 ++++++++++++--- editors/code/package.json | 11 ++++++++--- editors/code/src/config.ts | 2 ++ 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs index 2038ef89b3b..b5dc6f0fa98 100644 --- a/crates/rust-analyzer/src/config.rs +++ b/crates/rust-analyzer/src/config.rs @@ -50,6 +50,8 @@ impl Default for LensConfig { } impl LensConfig { + pub const NO_LENS: LensConfig = Self { run: false, debug: false, impementations: false }; + pub fn any(&self) -> bool { self.impementations || self.runnable() } @@ -224,9 +226,16 @@ impl Config { set(value, "/completion/addCallParenthesis", &mut self.completion.add_call_parenthesis); set(value, "/completion/addCallArgumentSnippets", &mut self.completion.add_call_argument_snippets); set(value, "/callInfo/full", &mut self.call_info_full); - set(value, "/lens/run", &mut self.lens.run); - set(value, "/lens/debug", &mut self.lens.debug); - set(value, "/lens/implementations", &mut self.lens.impementations); + + let mut lens_enabled = true; + set(value, "/lens/enable", &mut lens_enabled); + if lens_enabled { + set(value, "/lens/run", &mut self.lens.run); + set(value, "/lens/debug", &mut self.lens.debug); + set(value, "/lens/implementations", &mut self.lens.impementations); + } else { + self.lens = LensConfig::NO_LENS; + } log::info!("Config::update() = {:#?}", self); diff --git a/editors/code/package.json b/editors/code/package.json index efed4c7f2f3..38c77533cdf 100644 --- a/editors/code/package.json +++ b/editors/code/package.json @@ -444,18 +444,23 @@ "default": {}, "description": "Optional settings passed to the debug engine. Example:\n{ \"lldb\": { \"terminal\":\"external\"} }" }, + "rust-analyzer.lens.enable": { + "description": "Whether to show CodeLens in Rust files.", + "type": "boolean", + "default": true + }, "rust-analyzer.lens.run": { - "description": "Whether to show Run lens.", + "markdownDescription": "Whether to show Run lens. Only applies when `#rust-analyzer.lens.enable#` is set.", "type": "boolean", "default": true }, "rust-analyzer.lens.debug": { - "description": "Whether to show Debug lens.", + "markdownDescription": "Whether to show Debug lens. Only applies when `#rust-analyzer.lens.enable#` is set.", "type": "boolean", "default": true }, "rust-analyzer.lens.implementations": { - "description": "Whether to show Implementations lens.", + "markdownDescription": "Whether to show Implementations lens. Only applies when `#rust-analyzer.lens.enable#` is set.", "type": "boolean", "default": true } diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts index 93d9aa16075..ee294fbe312 100644 --- a/editors/code/src/config.ts +++ b/editors/code/src/config.ts @@ -16,6 +16,7 @@ export class Config { "files", "highlighting", "updates.channel", + "lens.enable", "lens.run", "lens.debug", "lens.implementations", @@ -125,6 +126,7 @@ export class Config { get lens() { return { + enable: this.get("lens.enable"), run: this.get("lens.run"), debug: this.get("lens.debug"), implementations: this.get("lens.implementations"),