重新格式化IntelliJ IDEA中的混合内容XML

问题描述:

我想阻止IDEA为特定元素插入换行符,类似于某些元素(如<b>)保持内联的HTML格式。重新格式化IntelliJ IDEA中的混合内容XML

我有一个声明混合内容的DTD的XML方言。

DTD:

<!ELEMENT mixed (#PCDATA|inline)*> 
<!ELEMENT inline #PCDATA> 

XML文件:

<mixed> 
    Some text with <inline>inline elements</inline> 
    and a line break. 
</mixed> 

当我重新格式化XML文件,IDEA会将其转换成

<mixed> 
    Some text with 
    <inline>inline elements</inline> 
    and a line break. 
</mixed> 

我已经看了所有代码样式的选项 - > XML->其它。 “保留空白”选项过于严格,因为我希望IDEA打破冗长的界限。

在IDEA 13中,您可以使用新的格式化程序控制功能来禁用所选代码行的自动格式。 要启用此功能,你应该标注在项目设置以下复选框:

Formatter Control Settings

然后插入在评论中选择的标记来划分的代码段不应由重新格式化代码工具进行格式化,东西像:

<root> 
    <!-- @formatter:off --> 
    <mixed> 
     Some text with <inline>inline elements</inline> 
     and a line break. 
    </mixed> 
    <!-- @formatter:on --> 

    <mixed> 
     Some text with 
     <inline>inline elements</inline> 
     and a line break. 
    </mixed> 
</root> 

不幸的是,在IDEA的早期版本,并在这种情况下,没有这样的功能在只知道我的选择是手动,而不是格式化代码中使用改革在代码工具。

+0

这是非常有趣的,我不知道这件事。但是,我需要的是写入DTD的东西,因此重新格式化后会留下像“inline”元素一样的选定元素。我不知道这样的东西是否存在,但IDEA可以为HTML中的内联元素做到这一点,并且似乎用一种放松的ng模式来定义。 –

尝试了很多事情之后,我觉得这是不可能的。 我已经提交一个功能要求:

http://youtrack.jetbrains.com/issue/IDEA-119650