Динамический текст шаблона Intellij Live

#intellij-idea #live-templates

#intellij-идея #live-шаблоны

Вопрос:

Я пытаюсь создать «динамический» живой шаблон для PyCharm и сталкиваюсь с препятствием (я могу создавать простые шаблоны с переменной вставкой, без проблем). Я начинаю верить, что то, чего я пытаюсь достичь, может оказаться невозможным. Я не привязан к Groovy Script, но он выглядит наиболее многообещающей альтернативой тому, чего я пытаюсь достичь. Я не могу предоставить минимальный, воспроизводимый пример, выходящий за рамки простого описания. Вот чего я пытаюсь достичь:

  • Все, что вводится после нажатия TABи до нажатияEnter, передается в шаблон, форматируется и записывается обратно в редактор. Моя цель — получить результирующую строку заданной длины, но на данный момент это менее важно. На самом деле это больше о том, как получить ввод с клавиатуры в шаблон и вернуться обратно.

Например:

«blk» TAB«Привет, мир» Enterстановится
# ==================== Hello world ====================

Возможно ли это с живыми шаблонами?

РЕДАКТИРОВАТЬ: Чтобы было ясно, вопрос здесь заключается в том, как переформатировать введенный ввод и вернуть форматированный ввод в выходные данные шаблона. Например, используя приведенное выше — пусть результирующая строка «Hello world» всегда будет длиной 80 символов.

ПРАВКА2: преобразование предыдущего комментария в ответ, чтобы закрыть цикл по этому вопросу. С радостью открою, если появится новая информация.

Ответ №1:

Да, это должно быть возможно с таким шаблоном:

 # ==================== $MY_TEXT$ ====================
 

Где $MY_TEXT$ это просто пустая пользовательская переменная пользовательского шаблона.

Комментарии:

1. Спасибо, что нашли время ответить на вопрос. К сожалению, это не доходит до сути вопроса. Как я уже отмечал, я могу создавать шаблоны с вставкой переменных. Что я хочу сделать, так это отформатировать результирующий результат в соответствии с потребностями обстоятельств (например, гарантируя, что вывод всегда имеет длину 80 символов или преобразует значение с плавающей точкой в значение int.) К сожалению, ваше предложение этого не делает. Я скорректирую вопрос, чтобы сделать его более понятным. Еще раз спасибо. Приветствия.

Ответ №2:

Я подтвердил с помощью Jet Brains, что то, что я специально пытаюсь выполнить — динамическое форматирование введенного ввода в живой шаблон — невозможно в текущей среде IDE (начиная с версии 2020.3).

Вместо этого они предполагают, что для этого потребуется пользовательский плагин с конкретными функциями, связанными с com.intellij.codeInsight.template.postfix.templates.PostfixTemplate.