首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将函数从单行改为多行vscode时插入右大括号

将函数从单行改为多行vscode时插入右大括号
EN

Stack Overflow用户
提问于 2019-09-07 02:27:20
回答 1查看 75关注 0票数 0

我确信IntelliJ在默认情况下为我做了这件事,但在VS代码中,我希望在从代码示例1(一行)转到代码示例2(多行)时,有一个内置的自动插入右括号的功能。

代码语言:javascript
运行
复制
if (true) doStuff();

现在,不管出于什么原因,我希望上面的代码是多行的。我转到if的末尾,然后按{,然后按Enter。我得到一个不完整的if (没有右大括号):

代码语言:javascript
运行
复制
if (true) {
    doStuff();

我想要的是:

代码语言:javascript
运行
复制
if (true) {
    doStuff();
}

我很抱歉,因为我经常想不出合适的词来回答这个问题,但基本上,我认为IntelliJ会在进行此更改时自动添加右大括号。我正在寻找相同的VS代码。

我以为我找到了答案: settings.json -> "editor.autoClosingBrackets",但不是。

EN

回答 1

Stack Overflow用户

发布于 2019-09-07 03:00:35

如果你没有得到一个更简单的答案,你可以自己用一个宏来创建这个功能。使用像multi-command这样的宏扩展名,将以下代码放入您的settings.json:

代码语言:javascript
运行
复制
 "multiCommand.commands": [

    {
      "command": "multiCommand.createBlockForSingleLine",
      "sequence": [
        {
          "command": "type",
          "args": {
            "text": "{\n"
          }
        },
        "editor.action.insertLineAfter",
        {
          "command": "type",
          "args": {
            "text": "}"
          }
        },
      ]
    }
 ]  

和一些你选择的键绑定(在keybindings.json中):

代码语言:javascript
运行
复制
 { 
    "key": "alt+[",     // I used `alt+[` same as `alt+{` without the shift
    "command": "multiCommand.createBlockForSingleLine",
    "when": "editorLangId == javascript"
  },

现在,如果你将vscode设置为自动结束括号,不幸的是,这将在你不想要的地方添加额外的}。这样设置

代码语言:javascript
运行
复制
"editor.autoClosingBrackets": "beforeWhitespace"   // or 'never'

来防止这种情况发生。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57826960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档