Python 高级XML语言注入
我有一些xml文件,其中嵌入了python代码,我正在使用语言注入。这是一种工作,但不是100%。这里有一个例子Python 高级XML语言注入,python,xml,pycharm,intellij-plugin,Python,Xml,Pycharm,Intellij Plugin,我有一些xml文件,其中嵌入了python代码,我正在使用语言注入。这是一种工作,但不是100%。这里有一个例子 <frm> ... <script> <code name = "__init__(self, *args, **kwargs)"> <![CDATA[ # Python code super().__init__(*args, **kwargs) ]]> </code> </sc
<frm>
...
<script>
<code name = "__init__(self, *args, **kwargs)">
<![CDATA[
# Python code
super().__init__(*args, **kwargs)
]]>
</code>
</script>
</frm>
现在,我的第一个问题,是否可以为标记的完整路径定义语言注入?我是说frm/script/code
?因为只有在xml语言注入中将“代码”指定为本地名称时,它才起作用
对于
,我已经将前缀定义为“class Form1(FormBase):”,但不知道它是否工作,因为在方法定义中将鼠标悬停在“self”上不会显示任何内容,只是它不会在任何地方使用
标签工作正常(我猜)。但是的
CDATA
的注入没有作为函数体的一部分工作。我将其定义为“代码”,作为xml注入中的本地名称
缩进-我是否可以指定,
标记中的代码应该针对一些空格/制表符进行标识
我是否可以查看语言注入中的“生成”代码
或者我可以制作一个插件来创建我需要的语言注入吗
(该问题已发布在pycharm论坛上,但没有答复)
谢谢
编辑:
因此,我尝试使用LanguageInjector
和multi-hostinjector
制作插件,但没有成功。python缩进确实有问题,我无法“生成”具有正确缩进的代码。我真正需要的是能够选择预处理整个xml,生成python代码,然后将代码映射到xml部分(就像我在应用程序中所做的那样)。如果有人知道这是可能的,请让我知道
class Form1(FormBase):
def __init__(self, *args, **kwargs):
# Python code
super().__init__(*args, **kwargs)
...