【问题标题】:How do I stop Eclipse XML formatter putting text on new lines?如何停止 Eclipse XML 格式化程序将文本放在新行上?
【发布时间】:2013-09-14 22:52:23
【问题描述】:

我有一些看起来像这样的 XML(粘贴新的 Maven 依赖项后):

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.6.0.Final</version>
    </dependency>
    <dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.3.0</version>
</dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.11</version>
    </dependency>

当我选择文本并选择 Source → Format(默认为 Ctrl+Shift+F)时,我希望它最终看起来像这样:

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.6.0.Final</version>
    </dependency>
    <dependency>
        <groupId>net.sourceforge.jtds</groupId>
        <artifactId>jtds</artifactId>
        <version>1.3.0</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.11</version>
    </dependency>

但是,它看起来像这样:

    </dependency><dependency>

        <groupId>
org.hibernate
        </groupId>

        <artifactId>
hibernate-entitymanager
        </artifactId>

        <version>
3.6.0.Final
        </version>
    </dependency>

    <dependency>

        <groupId>
net.sourceforge.jtds
        </groupId>

        <artifactId>
jtds
        </artifactId>

        <version>
1.3.0
        </version>

糟糕!

如果我不选择任何文本并尝试格式化整个文件,它会做同样的事情:在所有文本(字符数据)之前放置换行符。

我玩过 Window → Preferences → XML → XML Files → Editor → Formatting 中的设置,但似乎没有一个能解决这个问题。肯定没有勾选“在文本前插入烦人的换行符”复选框!

关于如何解决这个问题的任何想法? FWIW,格式化 Java 代码效果很好。

帮助 → 关于 Eclipse

Eclipse Java EE IDE for Web Developers.

Version: Indigo Service Release 2
Build id: 20120216-1857

我正在从 Cygwin 中启动 Eclipse for Windows,但没有注意到任何其他与 CR/LF 相关的问题。尽管如此,我还是尝试将文件从 unix 样式换行转换为 DOS 样式的换行符,但这并没有什么不同。

【问题讨论】:

  • 这可能有助于确定您使用哪个编辑器进行格式化。检查文件的“打开方式”上下文菜单以查看您使用的是哪个。
  • 这引导我朝着正确的方向前进!上下文菜单没有具体告诉我我使用的是哪个编辑器,但我意识到我已经习惯了点击 Android 编辑器的专用选项卡,以至于我什至没有想到它。如果您发布“检查您是否真的在使用 XML 编辑器”作为答案,我会给予它应得的荣誉。干杯!

标签: xml eclipse code-formatting


【解决方案1】:

检查您是否正在使用 XML 编辑器;您正在使用其偏好设置页面,而这些偏好设置可能不适用于其他编辑器。

【讨论】:

  • 原来我使用的是 Android 编辑器,并且在文本前添加换行符是 Android 代码的标准。
  • 我正在使用 xml 编辑器,但是当我格式化文件时,它会将关闭标记放在新行中。热避免它?
【解决方案2】:

由于XML > XML Files > Editor 下的line width 设置,我遇到了这些问题。增加到 200 并且换行符消失了。

注意:如果您的代码曾经在移动设备上打印或查看过,一些开发人员可能会阻止您将此值增加到 +80。记住,并排和三向代码比较工具也很好。在这种情况下,增加线宽设置可能会使易读性变得困难。

感谢@MichaelScheper 的评论编辑

【讨论】:

  • 线宽是开发人员经常争论的问题之一。我尊重喜欢标准 80 的开发人员,只是为了让他们有空间进行大小差异(包括三向差异,在解决合并冲突时)。在包括 XML 在内的大多数语言中,使用双缩进来续行可以使行完全可读,并且具有完全横跨屏幕的代码无论如何都难以阅读。 (注意 StackOverflow 的 ← 边距是如何变宽的?原因相同。)
  • 关于并排和三向差异的要点。我忽略了那些最有益的情况。
  • 是的,我多次被指责对此“挑衅”。 ? 感谢您考虑我的经验。
猜你喜欢
  • 2014-06-28
  • 2011-10-04
  • 2010-10-03
  • 1970-01-01
  • 2023-01-31
  • 2012-09-17
  • 1970-01-01
  • 2019-09-16
  • 2011-06-25
相关资源
最近更新 更多