Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

internal: Make VSCode config more GUI edit friendly #12252

Merged
merged 1 commit into from May 14, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
107 changes: 53 additions & 54 deletions crates/rust-analyzer/src/config.rs
Expand Up @@ -109,7 +109,8 @@ config_data! {
///
/// Set to `"all"` to pass `--all-features` to cargo.
checkOnSave_features: Option<CargoFeatures> = "null",
/// Do not activate the `default` feature.
/// Whether to pass `--no-default-features` to cargo. Defaults to
/// `#rust-analyzer.cargo.noDefaultFeatures#`.
checkOnSave_noDefaultFeatures: Option<bool> = "null",
/// Override the command rust-analyzer uses to run build scripts and
/// build procedural macros. The command is required to output json
Expand All @@ -134,7 +135,7 @@ config_data! {
/// with `self` prefixed to them when inside a method.
completion_autoself_enable: bool = "true",
/// Whether to add parenthesis and argument snippets when completing function.
completion_callable_snippets: Option<CallableCompletionDef> = "\"fill_arguments\"",
completion_callable_snippets: CallableCompletionDef = "\"fill_arguments\"",
/// Whether to show postfix snippets like `dbg`, `if`, `not`, etc.
completion_postfix_enable: bool = "true",
/// Enables completions of private items and fields that are defined in the current workspace even if they are not visible at the current position.
Expand Down Expand Up @@ -1030,10 +1031,11 @@ impl Config {
&& completion_item_edit_resolve(&self.caps),
enable_self_on_the_fly: self.data.completion_autoself_enable,
enable_private_editable: self.data.completion_privateEditable_enable,
callable: self.data.completion_callable_snippets.map(|it| match it {
CallableCompletionDef::FillArguments => CallableSnippets::FillArguments,
CallableCompletionDef::AddParentheses => CallableSnippets::AddParentheses,
}),
callable: match self.data.completion_callable_snippets {
CallableCompletionDef::FillArguments => Some(CallableSnippets::FillArguments),
CallableCompletionDef::AddParentheses => Some(CallableSnippets::AddParentheses),
CallableCompletionDef::None => None,
},
insert_use: self.insert_use_config(),
snippet_cap: SnippetCap::new(try_or_def!(
self.caps
Expand Down Expand Up @@ -1385,6 +1387,7 @@ enum ImportGranularityDef {
enum CallableCompletionDef {
FillArguments,
AddParentheses,
None,
}

#[derive(Deserialize, Debug, Clone)]
Expand Down Expand Up @@ -1662,16 +1665,16 @@ fn field_props(field: &str, ty: &str, doc: &[&str], default: &str) -> serde_json
"type": "string",
"enum": ["workspace", "workspace_and_dependencies"],
"enumDescriptions": [
"Search in current workspace only",
"Search in current workspace and dependencies"
"Search in current workspace only.",
"Search in current workspace and dependencies."
],
},
"WorkspaceSymbolSearchKindDef" => set! {
"type": "string",
"enum": ["only_types", "all_symbols"],
"enumDescriptions": [
"Search for types only",
"Search for all symbols kinds"
"Search for types only.",
"Search for all symbols kinds."
],
},
"ParallelCachePrimingNumThreads" => set! {
Expand All @@ -1680,47 +1683,46 @@ fn field_props(field: &str, ty: &str, doc: &[&str], default: &str) -> serde_json
"maximum": 255
},
"LifetimeElisionDef" => set! {
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
"skip_trivial"
],
"enumDescriptions": [
"Always show lifetime elision hints.",
"Never show lifetime elision hints.",
"Only show lifetime elision hints if a return type is involved."
]
},
{ "type": "boolean" }
"type": "string",
"enum": [
"always",
"never",
"skip_trivial"
],
"enumDescriptions": [
"Always show lifetime elision hints.",
"Never show lifetime elision hints.",
"Only show lifetime elision hints if a return type is involved."
]
},
"ReborrowHintsDef" => set! {
"type": "string",
"enum": [
"always",
"never",
"mutable"
],
"enumDescriptions": [
"Always show reborrow hints.",
"Never show reborrow hints.",
"Only show mutable reborrow hints."
]
},
"CargoFeatures" => set! {
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
"mutable"
"all"
],
"enumDescriptions": [
"Always show reborrow hints.",
"Never show reborrow hints.",
"Only show mutable reborrow hints."
"Pass `--all-features` to cargo",
]
},
{ "type": "boolean" }
],
},
"CargoFeatures" => set! {
"type": ["string", "array"],
"items": { "type": "string" },
"enum": ["all"],
"enumDescriptions": [
"Pass `--all-features` to cargo",
{
"type": "array",
"items": { "type": "string" }
}
],
},
"Option<CargoFeatures>" => set! {
Expand All @@ -1741,21 +1743,18 @@ fn field_props(field: &str, ty: &str, doc: &[&str], default: &str) -> serde_json
{ "type": "null" }
],
},
"Option<CallableCompletionDef>" => set! {
"anyOf": [
{
"type": "string",
"enum": [
"fill_arguments",
"add_parentheses"
],
"enumDescriptions": [
"Add call parentheses and pre-fill arguments",
"Add call parentheses"
]
},
{ "type": "null" }
"CallableCompletionDef" => set! {
"type": "string",
"enum": [
"fill_arguments",
"add_parentheses",
"none",
],
"enumDescriptions": [
"Add call parentheses and pre-fill arguments.",
"Add call parentheses.",
"Do no snippet completions for callables."
]
},
"SignatureDetail" => set! {
"type": "string",
Expand Down
3 changes: 2 additions & 1 deletion docs/user/generated_config.adoc
Expand Up @@ -104,7 +104,8 @@ Set to `"all"` to pass `--all-features` to cargo.
[[rust-analyzer.checkOnSave.noDefaultFeatures]]rust-analyzer.checkOnSave.noDefaultFeatures (default: `null`)::
+
--
Do not activate the `default` feature.
Whether to pass `--no-default-features` to cargo. Defaults to
`#rust-analyzer.cargo.noDefaultFeatures#`.
--
[[rust-analyzer.checkOnSave.overrideCommand]]rust-analyzer.checkOnSave.overrideCommand (default: `null`)::
+
Expand Down
117 changes: 51 additions & 66 deletions editors/code/package.json
Expand Up @@ -423,18 +423,22 @@
"rust-analyzer.cargo.features": {
"markdownDescription": "List of features to activate.\n\nSet this to `\"all\"` to pass `--all-features` to cargo.",
"default": [],
"type": [
"string",
"array"
],
"items": {
"type": "string"
},
"enum": [
"all"
],
"enumDescriptions": [
"Pass `--all-features` to cargo"
"anyOf": [
{
"type": "string",
"enum": [
"all"
],
"enumDescriptions": [
"Pass `--all-features` to cargo"
]
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"rust-analyzer.cargo.noDefaultFeatures": {
Expand Down Expand Up @@ -513,7 +517,7 @@
]
},
"rust-analyzer.checkOnSave.noDefaultFeatures": {
"markdownDescription": "Do not activate the `default` feature.",
"markdownDescription": "Whether to pass `--no-default-features` to cargo. Defaults to\n`#rust-analyzer.cargo.noDefaultFeatures#`.",
"default": null,
"type": [
"null",
Expand Down Expand Up @@ -552,21 +556,16 @@
"rust-analyzer.completion.callable.snippets": {
"markdownDescription": "Whether to add parenthesis and argument snippets when completing function.",
"default": "fill_arguments",
"anyOf": [
{
"type": "string",
"enum": [
"fill_arguments",
"add_parentheses"
],
"enumDescriptions": [
"Add call parentheses and pre-fill arguments",
"Add call parentheses"
]
},
{
"type": "null"
}
"type": "string",
"enum": [
"fill_arguments",
"add_parentheses",
"none"
],
"enumDescriptions": [
"Add call parentheses and pre-fill arguments.",
"Add call parentheses.",
"Do no snippet completions for callables."
]
},
"rust-analyzer.completion.postfix.enable": {
Expand Down Expand Up @@ -797,23 +796,16 @@
"rust-analyzer.inlayHints.lifetimeElisionHints.enable": {
"markdownDescription": "Whether to show inlay type hints for elided lifetimes in function signatures.",
"default": "never",
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
"skip_trivial"
],
"enumDescriptions": [
"Always show lifetime elision hints.",
"Never show lifetime elision hints.",
"Only show lifetime elision hints if a return type is involved."
]
},
{
"type": "boolean"
}
"type": "string",
"enum": [
"always",
"never",
"skip_trivial"
],
"enumDescriptions": [
"Always show lifetime elision hints.",
"Never show lifetime elision hints.",
"Only show lifetime elision hints if a return type is involved."
]
},
"rust-analyzer.inlayHints.lifetimeElisionHints.useParameterNames": {
Expand All @@ -838,23 +830,16 @@
"rust-analyzer.inlayHints.reborrowHints.enable": {
"markdownDescription": "Whether to show inlay type hints for compiler inserted reborrows.",
"default": "never",
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
"mutable"
],
"enumDescriptions": [
"Always show reborrow hints.",
"Never show reborrow hints.",
"Only show mutable reborrow hints."
]
},
{
"type": "boolean"
}
"type": "string",
"enum": [
"always",
"never",
"mutable"
],
"enumDescriptions": [
"Always show reborrow hints.",
"Never show reborrow hints.",
"Only show mutable reborrow hints."
]
},
"rust-analyzer.inlayHints.renderColons": {
Expand Down Expand Up @@ -1065,8 +1050,8 @@
"all_symbols"
],
"enumDescriptions": [
"Search for types only",
"Search for all symbols kinds"
"Search for types only.",
"Search for all symbols kinds."
]
},
"rust-analyzer.workspace.symbol.search.limit": {
Expand All @@ -1084,8 +1069,8 @@
"workspace_and_dependencies"
],
"enumDescriptions": [
"Search in current workspace only",
"Search in current workspace and dependencies"
"Search in current workspace only.",
"Search in current workspace and dependencies."
]
},
"$generated-end": {}
Expand Down