知名的 Google Java Style Guide 是許多 Java 開發人員遵循 Java 程式碼撰寫風格的指引之一,該指引也定義了一組格式化定義檔,其中包含了 Eclipse、IntellJ IDEA 與其他 IDE 的整合,可以幫助你跨越開發工具之間的格式化差異,讓不同人使用不同 Java 開發工具,也能統一基礎 Java 程式碼的撰寫風格。
Eclipse
你可以在 Eclipse 或 Spring Tool Suite 4 (STS4
) 開發工具中套用 eclipse-java-google-style.xml 格式化設定。
以下是設定步驟:
-
下載 eclipse-java-google-style.xml 格式設定檔
-
點選主選單的 Window
> Preferences
開啟 Preferences 視窗
-
點選左側頁籤到 Java
> Code Style
> Formatter
並點擊 Import
按鈕
-
選取 eclipse-java-google-style.xml
檔案,匯入 GoogleStyle
格式設定檔,按下 Apply and Close
套用設定即可
Visual Studio Code
在 Visual Studio Code 裡面開發 Java 通常會安裝 Language Support for Java(TM) by Red Hat 擴充套件,參考它的 Formatter settings 文件說明,該擴充套件其實已經內建了 Java 格式化工具,並且可以直接套用 Google Java Style 的 Eclipse 格式化定義檔(eclipse-java-google-style.xml)。
你只要將以下內容加入到使用者設定或工作區設定即可套用 Google 官方建議的格式化設定,以下是設定步驟:
{
"[java]": {
"editor.defaultFormatter": "redhat.java",
"editor.formatOnSave": true
},
"java.format.enabled": true,
"java.format.onType.enabled": true,
"java.format.settings.url": "https://raw.githubusercontent.com/google/styleguide/gh-pages/eclipse-java-google-style.xml",
"java.format.settings.profile": "GoogleStyle"
}
由於 eclipse-java-google-style.xml 檔案中包含一組名為 GoogleStyle
的的設定。如果你下載該檔案回來,就可以添加更多不同的設定,但請記得修改 java.format.settings.url
路徑,指向放在專案中的相對連結,並且在 java.format.settings.profile
設定中調整 Profile 名稱即可。
IntellJ IDEA
你可以在 IntellJ IDEA 開發工具套用 intellij-java-google-style.xml 格式化設定。該設定將會與 Eclipse 的 eclipse-java-google-style.xml 格式設定完全相同。
以下是設定步驟:
-
下載 intellij-java-google-style.xml 格式設定檔
-
按下 Ctrl+Alt+S
開啟 Settings
視窗,展開到 Editor
> Code Style
> Java
-
執行 Scheme
> Import Scheme
> IntelliJ IDEA code style XML
(如下圖示)
-
選擇 intellij-java-google-style.xml
設定檔,並按下 OK
以 GoogleStyle
這個名稱儲存
-
最後按下 OK
套用設定即可
如何更方便的在「專案層級」共用格式化設定
由於 Java 的開發工具很多,如果我們想在團隊中共用格式化設定,最方便的方式還是將格式化設定檔放入專案中,並將設定加入版控,藉此自動統一所有團隊成員的格式設定。
首先,在 Visual Studio Code 的 Language Support for Java(TM) by Red Hat 擴充套件有一個方法,可以讓你直接讀取 STS4 / Eclipse 常用的 Project-specific (專案層級) 格式化設定檔,讓這些設定跟著專案走,加入版控,讓開發團隊自動統一風格,這點非常方便。
你只要下載 .settings/org.eclipse.jdt.core.prefs 檔案,並且儲存到專案根目錄下的 .settings
目錄下即可。
不過,而且這個動作在 Eclipse 操作會比較方便,其設定步驟如下:
-
下載 eclipse-java-google-style.xml 格式設定檔
-
點擊專案節點,按下滑鼠右鍵,選擇 Properties
-
切換到 Java Code Style
> Formatter
頁籤
-
勾選 Enable project specific settings
並點擊 Import
按鈕
-
選取 eclipse-java-google-style.xml
檔案,匯入 GoogleStyle
格式設定檔,按下 Apply and Close
套用設定即可
上述步驟會自動在專案下建立一個 .settings/org.eclipse.jdt.core.prefs
檔案,這裡儲存的就是你在 Eclipse 的專案設定,記得要將該檔案加入版控。
注意: 如果 Visual Studio Code 偵測到有 .settings/org.eclipse.jdt.core.prefs
檔案存在,原有的 Java 格式化設定就會停用,自動採用 .settings/org.eclipse.jdt.core.prefs 宣告的格式化設定!
然而 IntellJ IDEA 開發工具並沒有與其他工具共用格式化設定的功能,因此你必須自行管理專案層級的格式化設定。重新匯入一次 GoogleStyle
設定,記得參考下圖選擇 Project
範圍即可:
匯入成功後,會自動建立一個 .idea\codeStyles\codeStyleConfig.xml
檔案,記得加入到版控之中。
總結
其實程式碼撰寫風格與排版一直都是非常個人且主觀的感受,每個人對於「美」的定義都不盡相同,因此要在團隊中吵什麼格式才漂亮,永遠吵不完!
現在我們可以看到的各種不同的程式語言間,只要有人想要出來主導撰寫風格,其發展趨勢大多都是非常武斷的(opinionated),甚至於完全不提供風格的客製化設定也屢見不鮮。像是 Prettier 這套格式化工具,其副標題就是 Opinionated Code Formatter,只提供相當少量的客製化選項,試圖不讓格式這件事過於發散,你不想用可以完全不用。
而像是 Google Java Style Guide 就是 Google 跳出來主導 Java 的撰寫風格,並且給你一個 Google 官方的預設值。本文介紹的格式化方法,還是有 300+
項格式化的細節可以調整,但我還是建議你乾脆就不要改了,直接用下去就好,這樣大家都沒有爭議,也不會日後吵成一團。😅
相關連結