diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-12-13 14:20:11 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2020-12-13 14:20:11 +0000 |
commit | 917d56273db8b117896c31a0766de6d8c0b5827b (patch) | |
tree | 52822c019b884b2f2f21688e1c72af738672be3e | |
parent | fbad1b8a2496b703876f9e09072f217cc3cde84b (diff) | |
parent | 612be092826ad6654fd7f8a337c49a39754e9293 (diff) |
Merge #6840
6840: Add a language configuration file for VS Code r=matklad a=dustypomerleau
There has been recent discussion in #6451 and #6682 about the need to include angle brackets in auto-close and auto-surround functionality. This PR will accomplish that, but only for users of VS Code, as it uses the VS Code-specific `language-configuration.json` to get the job done. Since there are a large number of VS Code users in the Rust Analyzer cohort, it may be reasonable to fix the issue for them, while waiting on a more comprehensive solution in the language server. In addition to the usual brackets, I've added auto-closing of block comments. I avoided autoclosing single quotes, given that lifetimes are more common than chars.
Co-authored-by: Dusty Pomerleau <[email protected]>
-rw-r--r-- | editors/code/language-configuration.json | 38 | ||||
-rw-r--r-- | editors/code/package.json | 11 |
2 files changed, 49 insertions, 0 deletions
diff --git a/editors/code/language-configuration.json b/editors/code/language-configuration.json new file mode 100644 index 000000000..b20e0d978 --- /dev/null +++ b/editors/code/language-configuration.json | |||
@@ -0,0 +1,38 @@ | |||
1 | { | ||
2 | "comments": { | ||
3 | "lineComment": "//", | ||
4 | "blockComment": [ "/*", "*/" ] | ||
5 | }, | ||
6 | "brackets": [ | ||
7 | ["{", "}"], | ||
8 | ["[", "]"], | ||
9 | ["(", ")"], | ||
10 | ["<", ">"] | ||
11 | ], | ||
12 | "autoClosingPairs": [ | ||
13 | { "open": "{", "close": "}" }, | ||
14 | { "open": "[", "close": "]" }, | ||
15 | { "open": "(", "close": ")" }, | ||
16 | { "open": "\"", "close": "\"", "notIn": ["string"] }, | ||
17 | { "open": "/*", "close": " */" } | ||
18 | ], | ||
19 | "autoCloseBefore": ";:.,=}])> \n\t", | ||
20 | "surroundingPairs": [ | ||
21 | ["{", "}"], | ||
22 | ["[", "]"], | ||
23 | ["(", ")"], | ||
24 | ["<", ">"], | ||
25 | ["\"", "\""], | ||
26 | ["'", "'"] | ||
27 | ], | ||
28 | "indentationRules": { | ||
29 | "increaseIndentPattern": "^.*\\{[^}\"']*$|^.*\\([^\\)\"']*$", | ||
30 | "decreaseIndentPattern": "^\\s*(\\s*\\/[*].*[*]\\/\\s*)*[})]" | ||
31 | }, | ||
32 | "folding": { | ||
33 | "markers": { | ||
34 | "start": "^\\s*//\\s*#?region\\b", | ||
35 | "end": "^\\s*//\\s*#?endregion\\b" | ||
36 | } | ||
37 | } | ||
38 | } | ||
diff --git a/editors/code/package.json b/editors/code/package.json index ca5f2ebc8..160a62e46 100644 --- a/editors/code/package.json +++ b/editors/code/package.json | |||
@@ -734,6 +734,17 @@ | |||
734 | "extensions": [ | 734 | "extensions": [ |
735 | ".rast" | 735 | ".rast" |
736 | ] | 736 | ] |
737 | }, | ||
738 | { | ||
739 | "id": "rust", | ||
740 | "extensions": [ | ||
741 | ".rs" | ||
742 | ], | ||
743 | "aliases": [ | ||
744 | "Rust", | ||
745 | "rs" | ||
746 | ], | ||
747 | "configuration": "language-configuration.json" | ||
737 | } | 748 | } |
738 | ], | 749 | ], |
739 | "grammars": [ | 750 | "grammars": [ |