Python 高级XML语言注入

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

我有一些xml文件,其中嵌入了python代码,我正在使用语言注入。这是一种工作,但不是100%。这里有一个例子


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

...