# 个性化配置

## 目录

- [问题模板](#问题模板)
- [VSCode插件](#vscode-plugins)
- [代码格式化工具](#代码格式化工具)

## 问题模板

好的模板可以节省您与用户的沟通时间，帮助您更快地找到问题所在。

借鉴于 [MAA](https://github.com/MaaAssistantArknights/MaaAssistantArknights) 项目模板，我们结合 `MaaFramework` 实际使用情况，提供一套可行的选择。

您可以简单的将 `.github/ISSUE_TEMPLATE` 目录下 `cn-bug-report.yaml` 和 `en-bug-report.yaml` 文件中 `MXX` 修改为您自己的项目名称，即可使用。

## VSCode 插件 <a id="vscode-plugins"></a>

好的插件可以提高您的开发效率，事半功倍。

- [Maa Pipeline Support](https://marketplace.visualstudio.com/items?itemName=nekosu.maa-support) | MaaFramework 插件，提供调试、截图、获取ROI、取色等功能
- [markdownlint](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) | Markdown 语法检查插件

## 代码格式化工具

代码格式化可统一代码风格，提高代码可读性，降低代码维护成本。

目前启用的格式化工具如下：

| 文件类型 | 格式化工具 |
| --- | --- |
| JSON/Yaml | [prettier](https://prettier.io/) |
| Markdown | [MarkdownLint](https://github.com/DavidAnson/markdownlint-cli2) |

另外还有 `oxipng` 无损压缩 PNG 图片。

### 利用 Pre-commit Hooks 自动进行代码格式化

1. 确保你的电脑上有 Python 与 Node 环境

2. 在项目根目录下执行以下命令

    ```bash
    pip install pre-commit
    pre-commit install
    ```

如果pip安装后依然无法运行pre-commit，请确认pip安装地址已被添加到PATH

接下来，每次提交时都将会自动运行格式化工具，来确保你的代码格式符合规范

### 格式化配置

#### Oxipng

对应文件 `.pre-commit-config.yaml` 中以下部分：

```yaml
- repo: https://github.com/shssoichiro/oxipng
  rev: v9.1.2
  hooks:
    - id: oxipng
      args: ["-q", "-o", "2", "-s", "--ng"]
```

[参数说明](https://github.com/shssoichiro/oxipng)

#### MarkdownLint

对应文件 `.pre-commit-config.yaml` 中以下部分：

```yaml
- repo: https://github.com/DavidAnson/markdownlint-cli2
  rev: v0.13.0
  hooks:
    - id: markdownlint-cli2
      files: ^docs/.*|^README\.md$
      types:
        - markdown
      args: ["--fix", "--config", "docs/.markdownlint.yaml", "#**/node_modules"]
```

配置文件 `docs/.markdownlint.yaml` , [具体规则](https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md)

#### Prettier

对应文件 `.pre-commit-config.yaml` 中以下部分：

```yaml
- repo: https://github.com/pre-commit/mirrors-prettier
  rev: v4.0.0-alpha.8
  hooks:
    - id: prettier
      types_or:
        - yaml
        - json
```


配置文件 `.prettierrc.yaml` , [具体规则](https://prettier.io/docs/en/options.html)

这里用到了 "prettier-plugin-multiline-arrays" 插件，目的是保持多行数组，不需要则可删去。
关联文件 `package.json` 以及 `package-lock.json` 。
