Eclipse Code Formatter Xml 文档

问题描述 投票:0回答:2

我正在寻找关于 Eclipse 代码格式化程序中不同参数的良好文档来源。我在堆栈溢出上找到了一些特定参数的好示例,但找不到任何全面的参数列表或不同间距选项的列表。例如,Google 格式化程序文件中的一项设置是

<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter" value="1040"/>

我已经看到了 16、48、80、81、1040 和 1585 等各种事物的对齐值,但似乎找不到任何具体的例子来说明这些值的用途。我知道 16 试图将所有内容放在一行上,80 也会做同样的事情,但如果发生换行,它会将所有参数移动到自己的行中。

如有任何帮助,我们将不胜感激。

java visual-studio-code formatting eclipse-formatter
2个回答
1
投票

目前,vscode-java 使用 Eclipse Formatter 风格,如您提到的 Google Formatter

尽管您已经知道为参数对齐分配特定值的设置。还有另一个设置可以控制参数是否包装在一行中或保留在不同的行中:

<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="1" />
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/>

详细信息请查看Java格式化:保留行但修复缩进

您可以尝试更改计算机上的 google_style.xml 以找到您想要的内容。


0
投票

我也遇到过这个。不幸的是,没有一个全面的资源来说明所有 XML 设置的作用。

我建议浏览 Eclipse 代码库以尝试了解有关特定设置的更多信息。一些对我帮助很大的文件:

  • DefaultCodeFormatterConstants.java 具有 XML 设置的实际文本名称。如果您搜索设置名称的末尾(例如
    alignment_for_annotations_on_parameter
    ),您将在该文件中找到它。所有变量都将在代码中的其他位置使用,而不是设置 XML 名称。
  • DefaultCodeFormatterOptions.java 是传递的实际对象。具体来说,Alignment 类描述了
    alignment_for_*
    设置的值;它们是存储为整数的位标志。正如您所提到的, 80 将所有内容保留在一行上,除非有换行符,然后它将每个参数放在它自己的行上。 80 = 64 + 16,这是
    M_NEXT_PER_LINE_SPLIT
    常数

使用这两个文件,在 formatter 文件夹中搜索代码,并进行一些实验(更改值并查看它如何格式化代码),您应该能够得到一些答案。理想情况下,您可以直接将这些 XML 设置映射到 Eclipse UI 中的解释,但我还无法做到这一点。

特别是对于 Google 格式化程序文件,似乎很多选项都没有任何效果。有些设置似乎已被弃用或已更改名称,而其他设置(如

*.count_dependents
)从未存在于 Eclipse 格式化程序中。 Google 尝试合并上游的一些改进,但他们从未将其纳入其中,因此该文件有很多设置,现在在 Eclipse 中不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.