Интерактивные шаблоны Intellij Idea

Я столкнулся с проблемой записи моего текущего имени ветки vcs каждый раз, когда я писал комментарий «todo».

Недавно я узнал о «Живых шаблонах» Intellij, которые довольно удобны в использовании. Я попытался применить его к своей проблеме, но нет шаблонов для извлечения имени ветки.

Итак, вопрос в том, могу ли я как-то выделить имя своей ветки для кодирования комментариев?


person Lelay    schedule 22.12.2018    source источник
comment
Не могли бы вы подробнее описать проблему? Не могу сказать, что полностью понял это.   -  person Feedforward    schedule 22.12.2018
comment
@AxelP ну, я должен писать свое текущее имя ветки в комментарии 'todo' (например, 'todo [feature-xxx]: ‹my_todo_comment›') каждый раз, когда я хочу оставить комментарий где-нибудь в коде. И это на самом деле немного скучно, поэтому я хочу автоматически сгенерировать шаблон «todo» (как я понял Live Templates, вы только начинаете писать специальное ключевое слово, и тогда будет сгенерирован полный шаблон). В поисках приемлемого шаблона я не нашел способа сделать это (я не нашел никакой функции, чтобы узнать, какая ветка сейчас используется).   -  person Lelay    schedule 22.12.2018


Ответы (2)


Для извлечения имени ветки можно использовать предопределенную функцию groovyScript и сценарий. Например, создайте следующий живой шаблон:

$COMMENT$ todo [$BRANCH$]: $END$

с аббревиатурой «todo» и описанием «Вставляет комментарий к todo с названием ветки». Щелкните Изменить переменные и дайте переменным следующие определения:

КОММЕНТАРИЙ:

lineCommentStart()

ФИЛИАЛ:

groovyScript("com.intellij.dvcs.repo.VcsRepositoryManager.getInstance(_editor.project).getRepositoryForFile(com.intellij.openapi.fileEditor.FileDocumentManager.getInstance().getFile(_editor.document)).getCurrentBranchName()")

Пропустить, если определено, отмечен флажком для обеих переменных. Сценарий Groovy (к сожалению) состоит из одной строки. Установите для применимых контекстов значение Everywhere.

С этим живым шаблоном теперь можно ввести todo Tab где-нибудь в исходном файле, и будет вставлен строчный комментарий с именем ветки. Это вставит правильный строковый комментарий в зависимости от языка файла или ничего в случае языков без строчного комментария, такого как HTML. И должен извлекать имя ветки независимо от типа используемого контроля версий (я тестировал с Git).

person Bas Leijdekkers    schedule 20.02.2019

Для живых шаблонов вы можете использовать стандартные функции. К сожалению, нет функции для определения текущей ветки VCS.
Но вы можете создать шаблон, чтобы немного упростить работу:

// TODO [$branch_name$]: $comment$

В этом шаблоне вам все равно нужно ввести имя ветки, но вы не должны вводить такие символы, как [, и курсор будет размещен автоматически.

Вы также можете создать запрос функции для новой предопределенной функции.

person Feedforward    schedule 22.12.2018