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

In VS Code, is there a way to automatically add an ending comment when a block of code is closed with a closing bracket (})?

假设我有一个简单的代码块:

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

在 VSCode 中有没有办法像这样在右括号中添加自动评论:

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

我在 IntelliJ Android Studio 的 Dart 插件中看到了这种行为,想知道 VSCode

中是否有类似的东西

是的,但不是真正的用户友好方式。

您可以通过向 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,例如。

简而言之,这种方法会有些维护,但是,对于那些不介意的人来说,这是一种本机解决方案。