<commit_before>---
author: 小莫
date: 2020-11-26
title: 使用IDEA保存时自动格式化代码配置
tags:
- IDEA
category: java
permalink: autoFormatOnSvae
---

公司的Java项目在提交代码时会自动执行CI。为了统一代码风格，CI中配置了使用google-java-format来检查代码格式，所以IDEA默认的格式化风格会和google的风格不一样，最终提交代码时需要执行 `./gradlew :spotlessApply`来再次format,经常会遇到在提交代码时会忘记执行脚本会导致CI构建失败。所以研究了一下如何让IDEA应用google的风格自动进行格式化。

<!-- more -->

## 一、安装google-java-format

preferences -> plugins -> Browse repositories…
搜索google-java-format安装插件

![image-20201126110557847](https://image.xiaomo.info//blog/image-20201126110557847.png)

### 启用google-java-format（AOSP）

![image-20201126110636172](https://image.xiaomo.info//blog/image-20201126110636172.png)

## 二、安装save actions

preferences -> plugins -> Browse repositories…
安装save actions
![image-20201126110724471](https://image.xiaomo.info//blog/image-20201126110724471.png)

### 启用save actions

保存时自动格式化

![image-20201126110813221](https://image.xiaomo.info//blog/image-20201126110813221.png)



#### 其他配置

关于formatting、build action和quick fix的部分根据需要开启<commit_msg>ideaAutoFormat<commit_after>---
author: 小莫
date: 2020-11-26
title: 使用IDEA保存时自动格式化代码配置
tags:
- IDEA
category: java
permalink: autoFormatOnSvae
---

公司的Java项目在提交代码时会自动执行CI。为了统一代码风格，CI中配置了使用google-java-format来检查代码格式，所以IDEA默认的格式化风格会和google的风格不一样，最终提交代码时需要执行 `./gradlew :spotlessApply`来再次format,经常会遇到在提交代码时会忘记执行脚本会导致CI构建失败。所以研究了一下如何让IDEA应用google的风格自动进行格式化。

<!-- more -->

## 一、安装google-java-format

preferences -> plugins -> Browse repositories…
搜索google-java-format安装插件

![image-20201126110557847](https://image.xiaomo.info//blog/image-20201126110557847.png)

### 启用google-java-format（AOSP）

![image-20201126110636172](https://image.xiaomo.info//blog/image-20201126110636172.png)

## 二、安装save actions

preferences -> plugins -> Browse repositories…
安装save actions
![image-20201126110724471](https://image.xiaomo.info//blog/image-20201126110724471.png)

### 启用save actions

保存时自动格式化

![image-20201126110813221](https://image.xiaomo.info//blog/image-20201126110813221.png)



### 其他配置

关于formatting、build action和quick fix的部分根据需要开启
{'fraction_non_alphanumeric': 0.13414634146341464, 'fraction_numerical': 0.1404878048780488, 'mean_word_length': 6.404332129963899, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 13, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5109218', 'n_tokens_mistral': 1183, 'n_tokens_neox': 1054, 'n_words': 85}