mirror of
https://github.com/rust-lang/rust-analyzer
synced 2025-01-26 03:45:04 +00:00
document feature flags
This commit is contained in:
parent
c02f1165ca
commit
dc65219ae1
5 changed files with 20 additions and 21 deletions
|
@ -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;
|
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#"{}"#).unwrap());
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
default,
|
default,
|
||||||
serde_json::from_str(
|
serde_json::from_str(r#"{"publishDecorations":null, "lruCapacity":null}"#).unwrap()
|
||||||
r#"{"publishDecorations":null, "showWorkspaceLoaded":null, "lruCapacity":null}"#
|
|
||||||
)
|
|
||||||
.unwrap()
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,8 +83,6 @@ host.
|
||||||
### Settings
|
### Settings
|
||||||
|
|
||||||
* `rust-analyzer.highlightingOn`: enables experimental syntax highlighting
|
* `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
|
* `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.
|
`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
|
* `rust-analyzer.raLspServerPath`: path to `ra_lsp_server` executable
|
||||||
|
@ -102,6 +100,17 @@ host.
|
||||||
* `rust-analyzer.trace.server`: enables internal logging
|
* `rust-analyzer.trace.server`: enables internal logging
|
||||||
* `rust-analyzer.trace.cargo-watch`: enables cargo-watch logging
|
* `rust-analyzer.trace.cargo-watch`: enables cargo-watch logging
|
||||||
* `RUST_SRC_PATH`: environment variable that overwrites the sysroot
|
* `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
|
## Emacs
|
||||||
|
|
|
@ -229,11 +229,6 @@
|
||||||
"description": "A list of patterns for cargo-watch to ignore (will be passed as `--ignore`)",
|
"description": "A list of patterns for cargo-watch to ignore (will be passed as `--ignore`)",
|
||||||
"default": []
|
"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": {
|
"rust-analyzer.trace.server": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"scope": "window",
|
"scope": "window",
|
||||||
|
|
|
@ -20,7 +20,6 @@ export class Config {
|
||||||
public rainbowHighlightingOn = false;
|
public rainbowHighlightingOn = false;
|
||||||
public enableEnhancedTyping = true;
|
public enableEnhancedTyping = true;
|
||||||
public raLspServerPath = RA_LSP_DEBUG || 'ra_lsp_server';
|
public raLspServerPath = RA_LSP_DEBUG || 'ra_lsp_server';
|
||||||
public showWorkspaceLoadedNotification = true;
|
|
||||||
public lruCapacity: null | number = null;
|
public lruCapacity: null | number = null;
|
||||||
public displayInlayHints = true;
|
public displayInlayHints = true;
|
||||||
public maxInlayHintLength: null | number = null;
|
public maxInlayHintLength: null | number = null;
|
||||||
|
@ -56,12 +55,6 @@ export class Config {
|
||||||
) as boolean;
|
) as boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.has('showWorkspaceLoadedNotification')) {
|
|
||||||
this.showWorkspaceLoadedNotification = config.get(
|
|
||||||
'showWorkspaceLoadedNotification'
|
|
||||||
) as boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this.highlightingOn && Server) {
|
if (!this.highlightingOn && Server) {
|
||||||
Server.highlighter.removeHighlights();
|
Server.highlighter.removeHighlights();
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,8 +42,6 @@ export class Server {
|
||||||
documentSelector: [{ scheme: 'file', language: 'rust' }],
|
documentSelector: [{ scheme: 'file', language: 'rust' }],
|
||||||
initializationOptions: {
|
initializationOptions: {
|
||||||
publishDecorations: true,
|
publishDecorations: true,
|
||||||
showWorkspaceLoaded:
|
|
||||||
Server.config.showWorkspaceLoadedNotification,
|
|
||||||
lruCapacity: Server.config.lruCapacity,
|
lruCapacity: Server.config.lruCapacity,
|
||||||
excludeGlobs: Server.config.excludeGlobs,
|
excludeGlobs: Server.config.excludeGlobs,
|
||||||
useClientWatching: Server.config.useClientWatching,
|
useClientWatching: Server.config.useClientWatching,
|
||||||
|
|
Loading…
Reference in a new issue