#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.