我确信IntelliJ在默认情况下为我做了这件事,但在VS代码中,我希望在从代码示例1(一行)转到代码示例2(多行)时,有一个内置的自动插入右括号的功能。
if (true) doStuff();
现在,不管出于什么原因,我希望上面的代码是多行的。我转到if的末尾,然后按{
,然后按Enter
。我得到一个不完整的if (没有右大括号):
if (true) {
doStuff();
我想要的是:
if (true) {
doStuff();
}
我很抱歉,因为我经常想不出合适的词来回答这个问题,但基本上,我认为IntelliJ会在进行此更改时自动添加右大括号。我正在寻找相同的VS代码。
我以为我找到了答案: settings.json -> "editor.autoClosingBrackets",但不是。
发布于 2019-09-07 03:00:35
如果你没有得到一个更简单的答案,你可以自己用一个宏来创建这个功能。使用像multi-command这样的宏扩展名,将以下代码放入您的settings.json:
"multiCommand.commands": [
{
"command": "multiCommand.createBlockForSingleLine",
"sequence": [
{
"command": "type",
"args": {
"text": "{\n"
}
},
"editor.action.insertLineAfter",
{
"command": "type",
"args": {
"text": "}"
}
},
]
}
]
和一些你选择的键绑定(在keybindings.json中):
{
"key": "alt+[", // I used `alt+[` same as `alt+{` without the shift
"command": "multiCommand.createBlockForSingleLine",
"when": "editorLangId == javascript"
},
现在,如果你将vscode设置为自动结束括号,不幸的是,这将在你不想要的地方添加额外的}
。这样设置
"editor.autoClosingBrackets": "beforeWhitespace" // or 'never'
来防止这种情况发生。
https://stackoverflow.com/questions/57826960
复制相似问题