Merge pull request #18522 from tareknaser/configure_typing_exclude_chars
Add Configurable Option to Exclude Trigger Characters for Typing Assists
This commit is contained in:
commit
d83f0fecb8
5 changed files with 20 additions and 15 deletions
|
|
@ -410,14 +410,16 @@ impl Analysis {
|
|||
&self,
|
||||
position: FilePosition,
|
||||
char_typed: char,
|
||||
autoclose: bool,
|
||||
chars_to_exclude: Option<String>,
|
||||
) -> Cancellable<Option<SourceChange>> {
|
||||
// Fast path to not even parse the file.
|
||||
if !typing::TRIGGER_CHARS.contains(char_typed) {
|
||||
return Ok(None);
|
||||
}
|
||||
if char_typed == '<' && !autoclose {
|
||||
return Ok(None);
|
||||
if let Some(chars_to_exclude) = chars_to_exclude {
|
||||
if chars_to_exclude.contains(char_typed) {
|
||||
return Ok(None);
|
||||
}
|
||||
}
|
||||
|
||||
self.with_db(|db| typing::on_char_typed(db, position, char_typed))
|
||||
|
|
|
|||
|
|
@ -308,8 +308,8 @@ config_data! {
|
|||
/// Show documentation.
|
||||
signatureInfo_documentation_enable: bool = true,
|
||||
|
||||
/// Whether to insert closing angle brackets when typing an opening angle bracket of a generic argument list.
|
||||
typing_autoClosingAngleBrackets_enable: bool = false,
|
||||
/// Specify the characters to exclude from triggering typing assists. The default trigger characters are `.`, `=`, `<`, `>`, `{`, and `(`. Setting this to a string will disable typing assists for the specified characters.
|
||||
typing_excludeChars: Option<String> = None,
|
||||
|
||||
|
||||
/// Enables automatic discovery of projects using [`DiscoverWorkspaceConfig::command`].
|
||||
|
|
@ -2156,8 +2156,8 @@ impl Config {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn typing_autoclose_angle(&self) -> bool {
|
||||
*self.typing_autoClosingAngleBrackets_enable()
|
||||
pub fn typing_exclude_chars(&self) -> Option<String> {
|
||||
self.typing_excludeChars().clone()
|
||||
}
|
||||
|
||||
// VSCode is our reference implementation, so we allow ourselves to work around issues by
|
||||
|
|
|
|||
|
|
@ -459,9 +459,9 @@ pub(crate) fn handle_on_type_formatting(
|
|||
if char_typed == '>' {
|
||||
return Ok(None);
|
||||
}
|
||||
let chars_to_exclude = snap.config.typing_exclude_chars();
|
||||
|
||||
let edit =
|
||||
snap.analysis.on_char_typed(position, char_typed, snap.config.typing_autoclose_angle())?;
|
||||
let edit = snap.analysis.on_char_typed(position, char_typed, chars_to_exclude)?;
|
||||
let edit = match edit {
|
||||
Some(it) => it,
|
||||
None => return Ok(None),
|
||||
|
|
|
|||
|
|
@ -992,10 +992,10 @@ Show full signature of the callable. Only shows parameters if disabled.
|
|||
--
|
||||
Show documentation.
|
||||
--
|
||||
[[rust-analyzer.typing.autoClosingAngleBrackets.enable]]rust-analyzer.typing.autoClosingAngleBrackets.enable (default: `false`)::
|
||||
[[rust-analyzer.typing.excludeChars]]rust-analyzer.typing.excludeChars (default: `null`)::
|
||||
+
|
||||
--
|
||||
Whether to insert closing angle brackets when typing an opening angle bracket of a generic argument list.
|
||||
Specify the characters to exclude from triggering typing assists. The default trigger characters are `.`, `=`, `<`, `>`, `{`, and `(`. Setting this to a string will disable typing assists for the specified characters.
|
||||
--
|
||||
[[rust-analyzer.workspace.discoverConfig]]rust-analyzer.workspace.discoverConfig (default: `null`)::
|
||||
+
|
||||
|
|
|
|||
|
|
@ -2605,10 +2605,13 @@
|
|||
{
|
||||
"title": "typing",
|
||||
"properties": {
|
||||
"rust-analyzer.typing.autoClosingAngleBrackets.enable": {
|
||||
"markdownDescription": "Whether to insert closing angle brackets when typing an opening angle bracket of a generic argument list.",
|
||||
"default": false,
|
||||
"type": "boolean"
|
||||
"rust-analyzer.typing.excludeChars": {
|
||||
"markdownDescription": "Specify the characters to exclude from triggering typing assists. The default trigger characters are `.`, `=`, `<`, `>`, `{`, and `(`. Setting this to a string will disable typing assists for the specified characters.",
|
||||
"default": null,
|
||||
"type": [
|
||||
"null",
|
||||
"string"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue