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

81

Есть ли способ использовать значение токена по умолчанию в Intellij Live templates? Например, у меня есть следующий живой шаблон, который объявляет частную переменную, которую я хотел бы создать почти для каждого класса:

private static final Logger logger = Logger.getLogger($CLASS$.class)

Кажется, нет необходимости вводить $CLASS$каждый раз, когда используется этот живой шаблон, потому что он может быть производным от класса в области видимости или имени файла. Мне было интересно, можно ли использовать токены, определенные средой, в живых шаблонах по умолчанию?

Леонид
источник

Ответы:

114

Проверьте некоторые другие шаблоны, которые уже используют текущее имя класса:

введите описание изображения здесь

CrazyCoder
источник
3
Спасибо, где определены все имеющиеся выражения?
Леонид
Все выражения перечислены здесь: jetbrains.com/help/idea/template-variables.html
Брэд,
54

log4j:

private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger($CLASS_NAME$.class);

slf4j:

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger($CLASS_NAME$.class);

Убедитесь, что вы установили применимый контекст для Java и что сокращенные имена FQ и пропуск, если они определены , включены.

Nowaker
источник
3
Мне нравится добавление, упоминаемое в этой статье, для настройки выражения en для заполнения переменной разумным значением по умолчанию. coderwall.com/p/hzmhbw
Snekse 08
@Snekse Это хорошее дополнение. Вы можете улучшить мой ответ, отредактировав его.
Nowaker
Этот ответ на самом деле не отвечает на вопрос спрашивающего: чтобы автоматически заполнить $CLASS_NAME$переменную именем класса, вам нужно установить «Выражение», связанное с $CLASS_NAME$переменной className(). См. Ответ CrazyCoder для получения снимка экрана.
Адиль Хуссейн
3

log4j 2:

private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger($CLASS_NAME$.class);
bruno.do.amaral
источник
Этот ответ на самом деле не отвечает на вопрос спрашивающего: чтобы автоматически заполнить $CLASS_NAME$переменную именем класса, вам нужно установить «Выражение», связанное с $CLASS_NAME$переменной className(). См. Ответ CrazyCoder для получения снимка экрана.
Адиль Хуссейн