Eclipse 格式化程序没有正确缩进
Posted
技术标签:
【中文标题】Eclipse 格式化程序没有正确缩进【英文标题】:Eclipse Formatter isn't indenting correctly 【发布时间】:2020-01-18 07:44:25 【问题描述】:我们正在为我们的Eclipse
项目使用Java Conventions [built-in]
格式化程序。在Eclipse
中查看代码后,代码在格式化和缩进后看起来与预期一样。
我们注意到,如果我们在Notepad++
(或其他应用程序)中打开文件,缩进实际上是不正确的。例如。方法体与方法具有相同的缩进。
此外,如果代码是从Eclipse
复制的,则缩进不正确。
示例 1
在Eclipse
class Example
public static void main(String args[])
System.out.println("Hello World!");
在Notepad++
class Example
public static void main(String args[])
System.out.println("Hello World!");
示例 2
在Eclipse
public static void main(String args[])
System.out.println("Hello World!");
在Notepad++
public static void main(String args[])
System.out.println("Hello World!");
这是预期的行为吗?
空格/制表符的屏幕截图
所有字符
【问题讨论】:
我的猜测:在 Eclipse 中,您使用的是 tabs i.o。缩进的空格(不是真正的约定)。而在 Notepad++ 中,选项卡设置设置为 0 个空格,对于 java 应该是 4。 (记事本++:查看|显示符号|显示空白和制表符。) @deHaar Re “此问题与编程问题没有直接关系”,问题有效且切题,还有数千个关于格式问题的 SO 问题在 IDE 中! What topics can I ask about here? 明确解决了这一点:“如果您的问题通常涵盖……软件开发独有的实际、可回答的问题……那么您来对地方提出问题了!”。问题不应仅仅因为它们不“与编程问题直接相关”而被否决。赞成。 @deHaar eclipse-formatter 标签的存在(用于这个问题)也表明这个问题是 SO 的主题。 @deHaar 不用担心。看到一个有效的、很好的和有用的问题被否决真是令人沮丧,我认为这是由于对 SO 上有效问题的构成存在误解。 @skomisa 我没有投反对票,但也许我的评论让人们这样做了,这不是我的意图...... 【参考方案1】:默认的 Eclipse 格式化程序配置文件,Eclipse [Built-in],显示 选项卡,宽度为 4 个空格强>。
相比之下,Java Conventions [Built-in] 显示 选项卡,宽度为 8 个空格.
这是由Code Conventions for the Java Programming Language、4 - Indentation 给出的如下(由我突出显示):
四个空格应该作为缩进的单位。最正确 缩进的构造(空格与制表符)未指定。 标签 必须每 8 个空格(不是 4 个)准确设置一次。
如今,很少使用带有混合制表策略和制表宽度为 8 个空格的原始 Java 代码约定。您可以考虑切换到 Eclipse [Built-in] 格式化程序配置文件。
【讨论】:
【参考方案2】:Java Conventions [Built-in]
配置文件使用 8 个空格作为制表符。
Notepad
使用 8 个空格,但 Notepad++
(以及我使用过的大多数其他 IDE,例如 IntelliJ
)使用 4 个空格。
要修复此问题,请复制配置文件并将制表符间距更改为 4
。
或者,Tab Policy
可以更改为 Spaces Only
。我更喜欢这个,因为我不觉得制表符应该用于间距。这个问题是为什么不应该使用制表符的一个例子。
【讨论】:
以上是关于Eclipse 格式化程序没有正确缩进的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Eclipse 格式化程序中为二进制操作保留自定义缩进
如何正确格式化项目符号和缩进 - Powerpoint VBA