【问题标题】:Reformatting mixed content XML in IntelliJ IDEA在 IntelliJ IDEA 中重新格式化混合内容 XML
【发布时间】:2014-02-02 20:43:01
【问题描述】:

我想阻止 IDEA 在某些元素周围插入换行符,类似于 HTML 格式,其中某些元素(如 <b>)保持内联。

我有一个带有声明混合内容的 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>

我查看了 Code style->XML->Other 上的所有选项。 “保留空白”选项限制性太强,因为我希望 IDEA 打破长行。

【问题讨论】:

    标签: xml intellij-idea reformat


    【解决方案1】:

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

    然后在 cmets 中插入选定的标记来划分不应由 重新格式化代码 工具格式化的代码片段,例如:

    <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 中没有这样的功能,在这种情况下,我唯一知道的选择是手动格式化代码,而不是使用 重新格式化代码 工具。

    【讨论】:

    • 这很有趣,我不知道。但是,我需要将类似的东西写入 DTD,以便重新格式化后,通常会单独保留选定的元素,如“内联”元素。我不知道是否存在类似的东西,但 IDEA 可以为 HTML 中的内联元素做到这一点,而且这似乎是用 Relax-ng 模式定义的。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      相关资源
      最近更新 更多