玩转Eclipse — 自动代码规范化

时间:2022-12-19 11:53:15

        大项目往往是有很多人一起完成的,然而每个人都有自己的style,导致整个项目的代码不仅存在不符合语言规范的情况,而且读起来非常困难。因此,这样的项目中都会引入Checkstyle,来规范大家的编码风格,尽量做到统一和合理。我们在代码写完之后,还要花时间去手动解决Checkstyle提示的问题,这是一个非常无聊和耗时的工作。下面介绍如何利用Eclipse配置,在我们写完代码并保存之后,Eclipse就会自动帮我们解决Checkstyle问题。

1. Formatter设置

        Eclipse工具栏上选择Window -> Preferences -> Java -> Code Style -> Formatter,进入如下界面:

玩转Eclipse — 自动代码规范化

        Active profile中显示的是当前正在使用的代码自动格式化配置。点击“Export All...”按钮可以导出Eclipse中的代码自动格式化配置,点击“Import...”按钮可以导入本地已有的配置文件,导入和导出的文件都是xml格式。可以点击“New...”按钮,在Eclipse中的一个已有配置基础上,新建一个自己的配置。

        下面重点介绍如何进行代码自动格式化配置。点击“Edit...”按钮,进入如下Formatter配置界面:

玩转Eclipse — 自动代码规范化

        上面红色框标记的选项卡中,是所有可以配置的选项。下面对每个选项卡大致可以设置的内容进行简单介绍:

  • Indentation缩进

             Tab policy指定是否可以使用Tab键,有Spaces only(只支持空格键),Tabs only(只支持Tab键)和Mixed(同时支持空格键和Tab键)。为了保证代码在不同IDE和运行环境的兼容性和一致性,强烈建议选择Spaces only。Indentation size指定每次缩进多少个空格,Tab size指定一个Tab键相当于多少个空格。在Spaces only情况下,按Tab键,会自动转化成对应数量的空格。

             Align fields in columns指定属性是否按列对齐。

             Indent框中指定Java Code中常见元素是否缩进。

  • Braces大括号

             Braces positions指定Java Code中一些元素的大括号的位置,大概有Same line(同行),Next line(下行),Next line indented(下行缩进)等选择。

  • White Space空格

             控制在Declarations、Control statements、Expressions、Arrays和Parameterized types这几类元素中的相应位置插入空格。

  • Blank Lines空行

             控制class文件中元素之间空行的数量,基本上采用默认值。

  • New Lines新行

             控制class文件中元素是否插入新的一行。

  • Control Statements控制语句

             控制像if和else,do和while,以及try、catch和finally成套的控制关键字的位置。

  • Line Wrapping换行

             Maximum line width控制每行的最大字符数。

             Default indentation for wrapped lines指定换行时缩进多少个空格。

             还可以详细控制class各元素是否换行。

  • Comments注释

             对各种注释(包括文件头注释,行注释,块注释,Javadoc注释)进行格式设置。

2. Save Actions设置

             进行Formatter设置后,你就可以使用Ctrl + Shift + F或者Source -> Format格式化选择的代码。其实,还有一种更好的方法,在每次写完代码并保存class文件的时候,自动格式化该文件的代码。选择Window -> Preferences -> Java -> Editor -> Save Actions进入如下界面:

玩转Eclipse — 自动代码规范化

             选择“Perform the selected actions on save”以及下面的三个复选框,其中“Format source code”就是根据前面设置的Formatter对Save文件中的代码进行自动格式化,可以选择仅针对修改过的代码还是针对所有代码。“Additional actions”是添加一些Save时的额外操作,可以点击“Configure...”按钮对额外操作进行设置,设置界面如下:

玩转Eclipse — 自动代码规范化

  • Code Organizing代码组织

             可以设置删除末尾的空格,正确的缩进,以及对成员进行排序。

  • Code Style代码风格

             可以设置控制语句和表达式,最重要的是还可以设置所有的parameter为final。

  • Member Access成员访问

             设置是否需要this来访问非static的属性和方法,同时也可以设置static的属性和方法。

  • Missing Code遗漏代码

             设置是否是否补齐遗漏的“@Override”和“@Deprecated”。

  • Unnecessary Code不必要代码

             删除不必要的代码,例如:没用的import,没用的private成员,没用的local变量等。