# Configuration This is the documentation for `clice.toml`. ## Project | Name | Type | Default | | ------------------- | -------- | ----------------------------- | | `project.cache_dir` | `string` | `"${workspace}/.clice/cache"` | Folder for storing PCH and PCM caches.
| Name | Type | Default | | ------------------- | -------- | ----------------------------- | | `project.index_dir` | `string` | `"${workspace}/.clice/index"` | Folder for storing index files.
## Rule `[[rules]]` represents an array of objects, where each object has the following properties:
| Name | Type | | ------------------ | ------------------- | | `[rules].patterns` | `array` of `string` | Glob patterns for matching file paths, following LSP's [standard](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#documentFilter). - `*`: Matches one or more characters in a path segment. - `?`: Matches a single character in a path segment. - `**`: Matches any number of path segments, including zero. - `{}`: Used for grouping conditions (e.g., `**/*.{ts,js}` matches all TypeScript and JavaScript files). - `[]`: Declares a character range to match in a path segment (e.g., `example.[0-9]` matches `example.0`, `example.1`, etc.). - `[!...]`: Excludes a character range to match in a path segment (e.g., `example.[!0-9]` matches `example.a`, `example.b`, but not `example.0`).
| Name | Type | Default | | ---------------- | ------------------- | ------- | | `[rules].append` | `array` of `string` | `[]` | Commands to append to the original command list. For example, `append = ["-std=c++17"]`.
| Name | Type | Default | | ---------------- | ------------------- | ------- | | `[rules].remove` | `array` of `string` | `[]` | Commands to remove from the original command list. For example, `remove = ["-std=c++11"]`.