Есть ли в VS Code способ автоматически добавлять завершающий комментарий, когда блок кода закрывается закрывающей скобкой (})?
Скажем, у меня есть простой блок кода:
if(a===b){
console.log('yay');
}
Есть ли способ в VSCode добавить автоматический комментарий к закрывающей скобке следующим образом:
if(a===b){
console.log('yay');
} // close-if-block
Я видел такое поведение в плагине Dart в IntelliJ Android Studio, и мне было интересно, доступно ли что-то подобное в VSCode.
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
, например.
Короче говоря, этот метод требует некоторого обслуживания, однако это нативное решение для тех, кто не против.