Auto merge of #12646 - lowr:fix/11897, r=lowr

fix: escape receiver texts in completion

This PR fixes #11897 by escaping '\\' and '$' in the text of the receiver position expression. See [here](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#snippet_syntax) for the specification of the snippet syntax (especially [this section](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#grammar) discusses escaping).

Although not all occurrences of '\\' and '$' have to be replaced, I chose to replace all as that's simpler and easier to understand. There *are* more clever ways to implement it, but I thought they were premature optimization for the time being (maybe I should put FIXME notes?).
This commit is contained in:
bors 2022-07-20 10:51:31 +00:00
commit f3e9b38e26
3 changed files with 84 additions and 15 deletions

View file

@ -17,7 +17,7 @@
// "body": [
// "thread::spawn(move || {",
// "\t$0",
// ")};",
// "});",
// ],
// "description": "Insert a thread::spawn call",
// "requires": "std::thread",