1

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

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

VSCode 中有没有办法在右括号中添加自动注释,如下所示:

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

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

4

1 回答 1

2

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

您可以通过向您的 : 添加一个参数来重新映射您的}密钥以附加文本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

你不能减轻这种情况,我不认为。

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

另一个需要注意的是,它只是不是范围感知的,这意味着它将是静态文本(不像片段),因此无法了解它是 aclose-if-block还是 a close-switch-statement

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

于 2020-07-28T21:13:45.350 回答