Skip to content

Commit

Permalink
Auto merge of #16618 - DropDemBits:structured-snippet-fix-escape-left…
Browse files Browse the repository at this point in the history
…-curly, r=Veykril

fix: Don't add `\` before `{`

Fixes #16607 for `{`. The `}` case is already fixed by #16475.

The [LSP snippet grammar](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#snippet_syntax) only specifies that `$`, `}`, and `\` can be escaped with backslashes, but not `{`.
  • Loading branch information
bors committed Feb 20, 2024
2 parents 4760d85 + 07421c1 commit 543d7e9
Showing 1 changed file with 7 additions and 9 deletions.
16 changes: 7 additions & 9 deletions crates/rust-analyzer/src/lsp/to_proto.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1002,10 +1002,8 @@ fn merge_text_and_snippet_edits(
let mut new_text = current_indel.insert;

// find which snippet bits need to be escaped
let escape_places = new_text
.rmatch_indices(['\\', '$', '{', '}'])
.map(|(insert, _)| insert)
.collect_vec();
let escape_places =
new_text.rmatch_indices(['\\', '$', '}']).map(|(insert, _)| insert).collect_vec();
let mut escape_places = escape_places.into_iter().peekable();
let mut escape_prior_bits = |new_text: &mut String, up_to: usize| {
for before in escape_places.peeking_take_while(|insert| *insert >= up_to) {
Expand Down Expand Up @@ -2176,7 +2174,7 @@ fn bar(_: usize) {}
character: 0,
},
},
new_text: "\\$${1:ab\\{\\}\\$c\\\\d}ef",
new_text: "\\$${1:ab{\\}\\$c\\\\d}ef",
insert_text_format: Some(
Snippet,
),
Expand Down Expand Up @@ -2272,7 +2270,7 @@ struct ProcMacro {
character: 5,
},
},
new_text: "$0disabled = false;\n ProcMacro \\{\n disabled,\n \\}",
new_text: "$0disabled = false;\n ProcMacro {\n disabled,\n \\}",
insert_text_format: Some(
Snippet,
),
Expand Down Expand Up @@ -2336,7 +2334,7 @@ struct P {
character: 5,
},
},
new_text: "$0disabled = false;\n ProcMacro \\{\n disabled,\n \\}",
new_text: "$0disabled = false;\n ProcMacro {\n disabled,\n \\}",
insert_text_format: Some(
Snippet,
),
Expand Down Expand Up @@ -2401,7 +2399,7 @@ struct ProcMacro {
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(
Snippet,
),
Expand Down Expand Up @@ -2466,7 +2464,7 @@ struct P {
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(
Snippet,
),
Expand Down

0 comments on commit 543d7e9

Please sign in to comment.