# **[IntelliJ] 在存檔時自動使用Prettier排版程式碼**
###### tags: `IntelliJ` `工作筆記`
### 原因
java在import檔案時,專案同仁每個人排列的習慣都不同
或是程式碼排版的風格也不同
時常因順序不同,出現在commit紀錄(但沒什麼意義)
因此統一用了Prettier來自動排版
# 作法
## 1. IDEA 安裝plugin prettier

## 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

## 4. IDEA Settings => Editor => Code Style => Java => 調整最下方的 import 順序及排列

修改成你想要的順序


## 5. IDEA Settings => Tools => Actions on Save 勾選 Run Prettier

## 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