# AutoWrite
**Repository Path**: LinWanCen/AutoWrite
## Basic Information
- **Project Name**: AutoWrite
- **Description**: 自动编写或修改代码文件
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-09-20
- **Last Updated**: 2022-05-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# `AutoWrite`
自动编写或修改代码文件
[TOC]
# 使用说明
## 直接使用
1. 清空 files 文件夹
2. 把要修改的源文件丢进去双击对应 .bat 文件
## 拖放使用
2. 把要修改的源文件拖到对应的 .bat 文件
## 直接修改剪切板
1. 清空 files 文件夹
2. 直接双击对应 .bat 文件
## 作为 IntelliJ IDEA 工具
1. Ctrl + Alt + S 进入设置
2. 选择 **Tools** 的 External Tools 添加进去,参数设置`$FilePath$ $FileEncoding$`即可

有道翻译配置:
1. 程序填 Java
2. 参数设置,配一个默认文件来达到不修改文件的目的
```
AutoWrite.YouDaoTranslation
$FilePath$
$FileEncoding$
lastTranslation.txt
$SelectionStartLine$
$SelectionEndLine$
$SelectionStartColumn$
$SelectionEndColumn$
```
3. 工作目录选择 class 文件的上级目录
## 作为 IntelliJ IDEA 选择内容工具
1. Ctrl + Alt + S 进入设置
2. 选择 **Tools** 的 External Tools 添加进去,参数设置:
```
$FilePath$
$FileEncoding$
$FilePath$
$SelectionStartLine$
$SelectionEndLine$
$SelectionStartColumn$
$SelectionEndColumn$
```
一般程序都是行处理,所以最后两个参数可以不设置,bat 文件也不会传入
# 基本程序介绍
运行参数:`[输入文件] [编码] [输出文件] [起始行] [结束行] [起始列] [结束列]`
## `AttributeAlign`
对齐 XML 属性
推荐设置为 IntelliJ IDEA 选择内容工具
```xml
```
替换为
```xml
```
## `MarkdownTableAlign`
对齐 markdown 表格
```md
| 中英文表格对齐测试 | A |
| ---| ---- |
| BBBBBBBBBBBB | 表|
```
替换为
```md
| 中英文表格对齐测试 | A |
| ------------------ | ---- |
| BBBBBBBBBBBB | 表 |
```
## `POJODoc`
把行末注释变为文档注释
```java
private String user; // 用户名
```
替换为
```java
/** 用户名 */
private String user;
```
## `GetSetDoc`
get set 方法添加字段上的文档注释
```java
/** 用户名 */
private String user;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
```
替换为
```java
/** 用户名 */
private String user;
/** 获取用户名 */
public String getUser() {
return user;
}
/** 设置用户名 */
public void setUser(String user) {
this.user = user;
}
```
## `ReplaceMethod`
替换重写方法的`return null;`为带方法本身的代码
```java
public String abc(String key) {
return null;
}
```
替换为
```java
public String abc(String key) {
return abc(key);
}
```
# 连续正则替换程序介绍
运行参数:`正则编码 正则文件 [输入文件] [编码] [输出文件] [起始行] [结束行] [起始列] [结束列]`
## `ReplaceAllMultiple`
在正则文件中写好要替换的正则表达式和正则替换式列表,
程序会读取整个文件并按顺序做正则替换。
正则文件前两行会被直接忽略,后面每四行为一组,分别是
1. 说明,若//开头则不执行,可以包含参数,参数可以放在任何位置,需匹配大小写
2. 正则表达式
3. 正则替换式,主要 Tab 等要用 \t 等表达,就像在 Java 代码中一样
4. 横线分割,无用
目前参数有五个,分别是:
get: 正则获取,正则替换式变为组索引(第几个括号内匹配到的内容)
loop: 替换到替换前后一致为止
title: 在文档开始添加 正则替换式 解码后的文本,换行符自行添加
footer: 在文档结尾添加 正则替换式 解码后的文本,换行符自行添加
case: 忽略大小写
案例:
find2tsv.txt
```
IntelliJ IDEA 搜索结果替换成 tsv 格式
-------------------------------------------
1.把原有 Tab 替换成四个空格
\t
-------------------------------------------
2.循环替换在行号代码前加文件名等信息【参数:loop】
(\W+)(\w*)(\.java.*\n)( +)(\d+) *(.*)
$1$2$3$4\t$2\t$5\t$2.java:$5\t$6
-------------------------------------------
3.替换掉非行号代码的部分
^ *[^\t]*
-------------------------------------------
4.替换掉开头的 Tab
^\t
-------------------------------------------
5.插入标题行【参数:title】
程序名\t行\t文件:行\t代码\n
-------------------------------------------
```