在VS Code中,有没有一种方法可以在用闭括号(})封闭代码块时自动添加结尾注释?

时间:2020-07-28 20:25:59

标签: visual-studio-code comments autocommenting

说我有一个简单的代码块:

if(a===b){
  console.log('yay');
}

VSCode中是否有一种方法可以将自动注释添加到结束括号中,如下所示:

if(a===b){
  console.log('yay');
} // close-if-block

我已经在IntelliJ Android Studio的Dart插件中看到了这种行为,并且想知道VSCode中是否有类似的东西

1 个答案:

答案 0 :(得分:1)

是的,但并非以用户友好的方式。

您可以通过向}添加参数来重新映射keybinds.json键,以在其中附加文本:

{
    "key": "shift+]",
    "command": "type",
    "args": {
        "text": "} // end of region"
    },
    "when": "editorTextFocus"
}

这很棘手的地方是...好吧,到处都是

考虑到您不希望所有可能的语言(显然是纯文本文件)都使用这种语言,则必须为您希望填充的语言的when表达式添加一些逻辑,这是没有问题的,可行的:

{
    "key": "shift+]",
    "command": "type",
    "args": {
        "text": "} // end of region"
    },
    "when": "editorTextFocus && resourceExtname =~ /^\\.(?:js|ts)$/"
}

现在,考虑您在评论中:

// this is a js comment, } //end of block

我认为您无法缓解这种情况。

另一个需要注意的是,大多数人都使用自动闭合括号,这意味着,您只需键入开头符号,然后为您填充结束符号,在这种情况下将不适用。

另一个警告是,它不是作用域感知的,这意味着它将是静态文本(不像摘要),因此无法了解它是close-if-block还是close-switch-statement ,例如。

简而言之,此方法将需要一些维护,但是,对于那些不介意的人来说,这是一个本机解决方案。