1. 程式人生 > >玩轉Eclipse — 自動程式碼規範化

玩轉Eclipse — 自動程式碼規範化

        大專案往往是有很多人一起完成的,然而每個人都有自己的style,導致整個專案的程式碼不僅存在不符合語言規範的情況,而且讀起來非常困難。因此,這樣的專案中都會引入Checkstyle,來規範大家的編碼風格,儘量做到統一和合理。我們在程式碼寫完之後,還要花時間去手動解決Checkstyle提示的問題,這是一個非常無聊和耗時的工作。下面介紹如何利用Eclipse配置,在我們寫完程式碼並儲存之後,Eclipse就會自動幫我們解決Checkstyle問題。

1. Formatter設定

        Eclipse工具欄上選擇Window -> Preferences -> Java -> Code Style -> Formatter

,進入如下介面:


        Active profile中顯示的是當前正在使用的程式碼自動格式化配置。點選“Export All...”按鈕可以匯出Eclipse中的程式碼自動格式化配置,點選“Import...”按鈕可以匯入本地已有的配置檔案,匯入和匯出的檔案都是xml格式。可以點選“New...”按鈕,在Eclipse中的一個已有配置基礎上,新建一個自己的配置。

        下面重點介紹如何進行程式碼自動格式化配置。點選“Edit...”按鈕,進入如下Formatter配置介面:


        上面紅色框標記的選項卡中,是所有可以配置的選項。下面對每個選項卡大致可以設定的內容進行簡單介紹:

  • 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進入如下介面:


             選擇“Perform the selected actions on save”以及下面的三個複選框,其中“Format source code”就是根據前面設定的Formatter對Save檔案中的程式碼進行自動格式化,可以選擇僅針對修改過的程式碼還是針對所有程式碼。“Additional actions”是新增一些Save時的額外操作,可以點選“Configure...”按鈕對額外操作進行設定,設定介面如下:


  • Code Organizing程式碼組織

             可以設定刪除末尾的空格,正確的縮排,以及對成員進行排序。

  • Code Style程式碼風格

             可以設定控制語句和表示式,最重要的是還可以設定所有的parameter為final。

  • Member Access成員訪問

             設定是否需要this來訪問非static的屬性和方法,同時也可以設定static的屬性和方法。

  • Missing Code遺漏程式碼

             設定是否是否補齊遺漏的“@Override”和“@Deprecated”。

  • Unnecessary Code不必要程式碼

             刪除不必要的程式碼,例如:沒用的import,沒用的private成員,沒用的local變數等。