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


81

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

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

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

Ответы:



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 и пропуск, если они определены , включены.


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);

Этот ответ на самом деле не отвечает на вопрос спрашивающего: чтобы автоматически заполнить $CLASS_NAME$переменную именем класса, вам нужно установить «Выражение», связанное с $CLASS_NAME$переменной className(). См. Ответ CrazyCoder для получения снимка экрана.
Адиль Хуссейн
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.