说我有一个简单的代码块:
if(a===b){
console.log('yay');
}
VSCode中是否有一种方法可以将自动注释添加到结束括号中,如下所示:
if(a===b){
console.log('yay');
} // close-if-block
我已经在IntelliJ Android Studio的Dart插件中看到了这种行为,并且想知道VSCode中是否有类似的东西
答案 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
,例如。
简而言之,此方法将需要一些维护,但是,对于那些不介意的人来说,这是一个本机解决方案。