# **[IntelliJ] 在存檔時自動使用Prettier排版程式碼** ###### tags: `IntelliJ` `工作筆記` ### 原因 java在import檔案時,專案同仁每個人排列的習慣都不同 或是程式碼排版的風格也不同 時常因順序不同,出現在commit紀錄(但沒什麼意義) 因此統一用了Prettier來自動排版 # 作法 ## 1. IDEA 安裝plugin prettier ![Snipaste_2022-12-30_14-21-16](https://user-images.githubusercontent.com/42643506/210040767-daf2f6f0-d39d-4662-ae08-8410cb11cebd.png) ## 2. cmd安裝prettier及prettier-java ``` npm install -g --save-dev --save-exact prettier ``` ``` npm install -g prettier-plugin-java --save-dev ``` ## 3. IDEA settings => Languages & Frameworks => JavaScript => Prettier ![image](https://user-images.githubusercontent.com/42643506/210039682-bfbfaeab-cf17-40a8-ac93-7d2d42297760.png) ## 4. IDEA Settings => Editor => Code Style => Java => 調整最下方的 import 順序及排列 ![image](https://user-images.githubusercontent.com/42643506/210039989-8e47d77d-754b-4bec-b01b-0f534ee58ef7.png) 修改成你想要的順序 ![image](https://user-images.githubusercontent.com/42643506/210040038-5b520ee7-a8d8-456a-8a7f-651bc5c62d28.png) ![image](https://user-images.githubusercontent.com/42643506/210040046-620608ad-8098-4b0e-a13b-e667a8205480.png) ## 5. IDEA Settings => Tools => Actions on Save 勾選 Run Prettier ![image](https://user-images.githubusercontent.com/42643506/210040087-42c28bd7-371e-4689-9ccb-f63df3b2574f.png) ## 6. 更換以下2個檔案(專案根目錄) 檔名:`.prettierignore` 內容: ``` = java node_modules target build package-lock.json .git .mvn gradle .gradle ``` 檔名:`.prettierrc` 內容: ``` = java # Prettier configuration printWidth: 140 singleQuote: true tabWidth: 2 useTabs: false # js and ts rules: arrowParens: avoid # jsx and tsx rules: bracketSameLine: false # java rules: overrides: - files: "*.java" options: tabWidth: 4 ``` ## 7. 更換以下2個檔案(.idea資料夾) 檔名:`checkstyle-idea.xml` 內容: ``` = java <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="CheckStyle-IDEA"> <option name="configuration"> <map> <entry key="checkstyle-version" value="9.2.1" /> <entry key="copy-libs" value="true" /> <entry key="location-0" value="BUNDLED:(bundled):Sun Checks" /> <entry key="location-1" value="BUNDLED:(bundled):Google Checks" /> <entry key="scan-before-checkin" value="false" /> <entry key="scanscope" value="JavaOnly" /> <entry key="suppress-errors" value="false" /> </map> </option> </component> </project> ``` 檔名:`prettier.xml` 內容: ``` = java <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="PrettierConfiguration"> <option name="myRunOnSave" value="true" /> <option name="myRunOnReformat" value="true" /> <option name="myFilesPattern" value="{**/*,*}.{js,ts,jsx,tsx,vue,mdx}" /> </component> </project> ``` ## 8. 指令排版 npx prettier --write "**/*.java" ## 9. 快捷鍵 Ctrl + shift + alt + P