mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-29 06:23:25 +00:00
fix: Don't add \
before {
The LSP snippet grammar only specifies that `$`, `}`, and `\` can be escaped with backslashes, but not `{`.
This commit is contained in:
parent
4760d856bc
commit
07421c13d4
1 changed files with 7 additions and 9 deletions
|
@ -1002,10 +1002,8 @@ fn merge_text_and_snippet_edits(
|
||||||
let mut new_text = current_indel.insert;
|
let mut new_text = current_indel.insert;
|
||||||
|
|
||||||
// find which snippet bits need to be escaped
|
// find which snippet bits need to be escaped
|
||||||
let escape_places = new_text
|
let escape_places =
|
||||||
.rmatch_indices(['\\', '$', '{', '}'])
|
new_text.rmatch_indices(['\\', '$', '}']).map(|(insert, _)| insert).collect_vec();
|
||||||
.map(|(insert, _)| insert)
|
|
||||||
.collect_vec();
|
|
||||||
let mut escape_places = escape_places.into_iter().peekable();
|
let mut escape_places = escape_places.into_iter().peekable();
|
||||||
let mut escape_prior_bits = |new_text: &mut String, up_to: usize| {
|
let mut escape_prior_bits = |new_text: &mut String, up_to: usize| {
|
||||||
for before in escape_places.peeking_take_while(|insert| *insert >= up_to) {
|
for before in escape_places.peeking_take_while(|insert| *insert >= up_to) {
|
||||||
|
@ -2176,7 +2174,7 @@ fn bar(_: usize) {}
|
||||||
character: 0,
|
character: 0,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
new_text: "\\$${1:ab\\{\\}\\$c\\\\d}ef",
|
new_text: "\\$${1:ab{\\}\\$c\\\\d}ef",
|
||||||
insert_text_format: Some(
|
insert_text_format: Some(
|
||||||
Snippet,
|
Snippet,
|
||||||
),
|
),
|
||||||
|
@ -2272,7 +2270,7 @@ struct ProcMacro {
|
||||||
character: 5,
|
character: 5,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
new_text: "$0disabled = false;\n ProcMacro \\{\n disabled,\n \\}",
|
new_text: "$0disabled = false;\n ProcMacro {\n disabled,\n \\}",
|
||||||
insert_text_format: Some(
|
insert_text_format: Some(
|
||||||
Snippet,
|
Snippet,
|
||||||
),
|
),
|
||||||
|
@ -2336,7 +2334,7 @@ struct P {
|
||||||
character: 5,
|
character: 5,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
new_text: "$0disabled = false;\n ProcMacro \\{\n disabled,\n \\}",
|
new_text: "$0disabled = false;\n ProcMacro {\n disabled,\n \\}",
|
||||||
insert_text_format: Some(
|
insert_text_format: Some(
|
||||||
Snippet,
|
Snippet,
|
||||||
),
|
),
|
||||||
|
@ -2401,7 +2399,7 @@ struct ProcMacro {
|
||||||
character: 5,
|
character: 5,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
new_text: "${0:disabled} = false;\n ProcMacro \\{\n disabled,\n \\}",
|
new_text: "${0:disabled} = false;\n ProcMacro {\n disabled,\n \\}",
|
||||||
insert_text_format: Some(
|
insert_text_format: Some(
|
||||||
Snippet,
|
Snippet,
|
||||||
),
|
),
|
||||||
|
@ -2466,7 +2464,7 @@ struct P {
|
||||||
character: 5,
|
character: 5,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
new_text: "${0:disabled} = false;\n ProcMacro \\{\n disabled,\n \\}",
|
new_text: "${0:disabled} = false;\n ProcMacro {\n disabled,\n \\}",
|
||||||
insert_text_format: Some(
|
insert_text_format: Some(
|
||||||
Snippet,
|
Snippet,
|
||||||
),
|
),
|
||||||
|
|
Loading…
Reference in a new issue