Intellij 实时模板动态文本

问题描述

我正在尝试为 PyCharm 创建一个“动态”实时模板,但遇到了障碍(我能够创建带有变量插入的简单模板,没问题)。我开始相信我试图完成的事情可能是不可能的。我不依赖于 Groovy Script,但它看起来是我想要完成的最有前途的替代方案。除了简单的描述之外,我无法提供一个最小的、可重现的示例。这是我想要完成的:

  • 在点击 TAB 之后和点击 Enter 之前输入的任何内容都会传递给模板,格式化并写回编辑器。我的目标是让结果字符串具有指定的长度,但这暂时不那么重要。更重要的是如何让键盘输入模板并再次退出

例如:

"blk" TAB "Hello world" Enter 变成
# ==================== Hello world ====================

使用实时模板可以实现吗?

编辑:要清楚,这里的问题是如何重新格式化输入的格式并将格式化的输入返回到模板的输出。例如,使用上面的 -- 使生成的“Hello world”行始终为 80 个字符长。

EDIT2:将先前的评论转换为答案以关闭此问题的循环。如果有新信息,很高兴重新开放。

解决方法

是的,应该可以使用这样的模板:

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

其中 $MY_TEXT$ 只是一个空的自定义用户 template variable

,

我已经与 Jet Brains 确认,我特别想完成的事情——动态格式化输入到实时模板——在当前 IDE(截至 2020.3 版)。

相反,他们建议它需要一个具有与 com.intellij.codeInsight.template.postfix.templates.PostfixTemplate. 相关的特定功能的自定义插件