From dc65219ae1216e747215fe937b248ebf2469f33f Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 25 Oct 2019 09:00:30 +0300 Subject: document feature flags --- crates/ra_lsp_server/src/config.rs | 14 +++++++++----- docs/user/README.md | 13 +++++++++++-- editors/code/package.json | 5 ----- editors/code/src/config.ts | 7 ------- editors/code/src/server.ts | 2 -- 5 files changed, 20 insertions(+), 21 deletions(-) diff --git a/crates/ra_lsp_server/src/config.rs b/crates/ra_lsp_server/src/config.rs index 579d4c692..9871a3b37 100644 --- a/crates/ra_lsp_server/src/config.rs +++ b/crates/ra_lsp_server/src/config.rs @@ -1,4 +1,11 @@ -//! FIXME: write short doc here +//! Config used by the language server. +//! +//! We currently get this config from `initialize` LSP request, which is not the +//! best way to do it, but was the simplest thing we could implement. +//! +//! Of particular interest is the `feature_flags` hash map: while other fields +//! configure the server itself, feature flags are passed into analysis, and +//! tweak things like automatic insertion of `()` in completions. use rustc_hash::FxHashMap; @@ -72,10 +79,7 @@ mod test { assert_eq!(default, serde_json::from_str(r#"{}"#).unwrap()); assert_eq!( default, - serde_json::from_str( - r#"{"publishDecorations":null, "showWorkspaceLoaded":null, "lruCapacity":null}"# - ) - .unwrap() + serde_json::from_str(r#"{"publishDecorations":null, "lruCapacity":null}"#).unwrap() ); } } diff --git a/docs/user/README.md b/docs/user/README.md index f1628d6a4..a1cef22cc 100644 --- a/docs/user/README.md +++ b/docs/user/README.md @@ -83,8 +83,6 @@ host. ### Settings * `rust-analyzer.highlightingOn`: enables experimental syntax highlighting -* `rust-analyzer.showWorkspaceLoadedNotification`: to ease troubleshooting, a - notification is shown by default when a workspace is loaded * `rust-analyzer.enableEnhancedTyping`: by default, rust-analyzer intercepts `Enter` key to make it easier to continue comments. Note that it may conflict with VIM emulation plugin. * `rust-analyzer.raLspServerPath`: path to `ra_lsp_server` executable @@ -102,6 +100,17 @@ host. * `rust-analyzer.trace.server`: enables internal logging * `rust-analyzer.trace.cargo-watch`: enables cargo-watch logging * `RUST_SRC_PATH`: environment variable that overwrites the sysroot +* `rust-analyzer.featureFlags` -- a JSON object to tweak fine-grained behavior: + ```js + { + // Show diagnostics produced by rust-analyzer itself. + "lsp.diagnostics": true, + // Automatically insert `()` and `<>` when completing functions and types. + "completion.insertion.add-call-parenthesis": true, + // Show notification when workspace is fully loaded + "notifications.workspace-loaded": true, + } + ``` ## Emacs diff --git a/editors/code/package.json b/editors/code/package.json index 4b719aada..ee997e58f 100644 --- a/editors/code/package.json +++ b/editors/code/package.json @@ -229,11 +229,6 @@ "description": "A list of patterns for cargo-watch to ignore (will be passed as `--ignore`)", "default": [] }, - "rust-analyzer.showWorkspaceLoadedNotification": { - "type": "boolean", - "description": "Controls whether rust-analyzer displays a notification when a project is loaded.", - "default": false - }, "rust-analyzer.trace.server": { "type": "string", "scope": "window", diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts index 331936b5e..95c3f42e5 100644 --- a/editors/code/src/config.ts +++ b/editors/code/src/config.ts @@ -20,7 +20,6 @@ export class Config { public rainbowHighlightingOn = false; public enableEnhancedTyping = true; public raLspServerPath = RA_LSP_DEBUG || 'ra_lsp_server'; - public showWorkspaceLoadedNotification = true; public lruCapacity: null | number = null; public displayInlayHints = true; public maxInlayHintLength: null | number = null; @@ -56,12 +55,6 @@ export class Config { ) as boolean; } - if (config.has('showWorkspaceLoadedNotification')) { - this.showWorkspaceLoadedNotification = config.get( - 'showWorkspaceLoadedNotification' - ) as boolean; - } - if (!this.highlightingOn && Server) { Server.highlighter.removeHighlights(); } diff --git a/editors/code/src/server.ts b/editors/code/src/server.ts index ff50fcd99..a3ef21a16 100644 --- a/editors/code/src/server.ts +++ b/editors/code/src/server.ts @@ -42,8 +42,6 @@ export class Server { documentSelector: [{ scheme: 'file', language: 'rust' }], initializationOptions: { publishDecorations: true, - showWorkspaceLoaded: - Server.config.showWorkspaceLoadedNotification, lruCapacity: Server.config.lruCapacity, excludeGlobs: Server.config.excludeGlobs, useClientWatching: Server.config.useClientWatching, -- cgit v1.2.3