aboutsummaryrefslogtreecommitdiff
path: root/editors
diff options
context:
space:
mode:
authorVeetaha <[email protected]>2020-02-25 21:20:07 +0000
committerVeetaha <[email protected]>2020-02-25 21:20:07 +0000
commit655c8337c07cdc18a4d7a5a3c44a2c2145b1ec88 (patch)
tree30e4cfd3ac91cace5bcb336ab5882b032f917b0f /editors
parentd3040c0deba8266044029a6479a1c12c28e72750 (diff)
vscode: fix vscode-vim keybindings conflict
vscode-vim extension overrides the `type` command so that it prevents some keypresses to reach the text document editor. It conflicts with our `onEnter` keybinding that is used to support automatic doc comments extending and indentation insertion. The VSCode-native way to implement this would be to use regular expressions, but as per matklad it is considered not acceptable for the language server. Thus we implement it via a `Enter` keybinding that invokes our `onEnter` command which sends a request to rust-analyzer process and applies the appropriate source change recieved from it. At the end of the day we may only apply ad hoc workarounds for conflicting extensions. But vscode has another bug for that. You either cannot use parantheses in `when` condition of a keybinding or it just malfunctions. See an issue about that here: https://github.com/microsoft/vscode/issues/91473 To get the ultimate context, follow this zulip thread: https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Enhanced.20typing
Diffstat (limited to 'editors')
-rw-r--r--editors/code/package.json2
1 files changed, 1 insertions, 1 deletions
diff --git a/editors/code/package.json b/editors/code/package.json
index dff535fcd..925e8bbe7 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -162,7 +162,7 @@
162 { 162 {
163 "command": "rust-analyzer.onEnter", 163 "command": "rust-analyzer.onEnter",
164 "key": "enter", 164 "key": "enter",
165 "when": "editorTextFocus && !suggestWidgetVisible && editorLangId == rust" 165 "when": "editorTextFocus && !suggestWidgetVisible && editorLangId == rust && !vim.active || vim.mode == 'Insert' && editorTextFocus && !suggestWidgetVisible && editorLangId == rust"
166 } 166 }
167 ], 167 ],
168 "configuration": { 168 "configuration": {