# Configuration | clice
a powerful and modern C++ language server

Skip to content

# Configuration ​

这是 `clice.toml` 的文档。

## Project ​

名称 | 类型 | 默认值
--- | --- | ---
`project.cache_dir` | `string` | `"${workspace}/.clice/cache"`

用于储存 PCH 和 PCM 缓存的文件夹。

名称 | 类型 | 默认值
--- | --- | ---
`project.index_dir` | `string` | `"${workspace}/.clice/index"`

用于储存索引文件的文件夹。

## Rule ​

`[[rules]]` 表示一个对象数组，其中每个对象都拥有下面这些属性

名称 | 类型
--- | ---
`[rules].patterns` | `array` of `string`

用于匹配文件路径的 glob patterns，遵循 LSP 的 标准。

- `*`: 匹配路径段中的一个或多个字符。
- `?`: 匹配路径段中的单个字符。
- `**`: 匹配任意数量的路径段，包括零个。
- `{}`: 用于分组条件 (例如，`**/*.{ts,js}` 匹配所有 TypeScript 和 JavaScript 文件)。
- `[]`: 声明要匹配的路径段中的字符范围 (例如，`example.[0-9]` 匹配 `example.0`, `example.1` 等)。
- `[!...]`: 排除要匹配的路径段中的字符范围 (例如，`example.[!0-9]` 匹配 `example.a`, `example.b`，但不匹配 `example.0`)。

名称 | 类型 | 默认值
--- | --- | ---
`[rules].append` | `array` of `string` | `[]`

追加到原始命令列表中的命令。例如，`append = ["-std=c++17"]`。

名称 | 类型 | 默认值
--- | --- | ---
`[rules].remove` | `array` of `string` | `[]`

从原始命令列表中移除的命令。例如，`remove = ["-std=c++11"]`。