Есть ли в 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, например.

Короче говоря, этот метод требует некоторого обслуживания, однако это нативное решение для тех, кто не против.

Другие вопросы по тегам