Files
clice/docs/en/guide/quick-start.md
ykiko a40c0b3bf8 docs: expand compilation database generation guide (#401)
## Summary
- Fill in Visual Studio, Makefile, Meson sections (previously TODO)
- Expand Xmake section with CLI and VSCode extension workflows
- Simplify Others section to recommend
[catter](https://github.com/clice-io/catter)
- Fix CJK-Latin spacing in Chinese docs
- English and Chinese docs updated in sync

Supersedes #313 by @Stehsaer.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Stehsaer <Stehsaer@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 15:51:46 +08:00

127 lines
4.5 KiB
Markdown

# Quick Start
## Editor Plugins
clice implements the [Language Server Protocol](https://microsoft.github.io/language-server-protocol). Any editor that supports this protocol can theoretically work with clice to provide features like `code completion`, `diagnostics`, `go-to-definition`, and more.
However, beyond the standard protocol, clice also supports some protocol extensions. For better handling of these protocol extensions and better integration with editors, using clice plugins in specific editors is often a better choice. Most of them work out of the box and support clice's protocol extensions.
### Visual Studio Code
### Vim/Neovim
### Others
Other editors don't have available clice plugins yet (contributions welcome!). To use clice in them, please install clice yourself and refer to the specific editor's documentation on how to use a language server.
## Installation
If your editor plugin handles clice's download, you can skip this step.
### Download Prebuilt Binary
Download clice binary version through the Release page.
### Build from Source
Build clice from source yourself. For specific steps, refer to [build](../dev/build.md).
## Project Setup
For clice to correctly understand your code (e.g., find header file locations), you need to provide clice with a `compile_commands.json` file, also known as a [compilation database](https://clang.llvm.org/docs/JSONCompilationDatabase.html). The compilation database provides compilation options for each source file.
### CMake
For build systems using cmake, add the `-DCMAKE_EXPORT_COMPILE_COMMANDS=ON` option during build, for example:
```cmake
cmake -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
```
This will generate a `compile_commands.json` file in the `build` directory.
::: warning
Note: This option only works when cmake's generator is set to makefile and ninja. For other generators, this option will be ignored, meaning the compilation database cannot be generated.
:::
### Bazel
Bazel has no native support to generate a compilation database. The recommended solution is to use [bazel-compile-commands-extractor](https://github.com/hedronvision/bazel-compile-commands-extractor). After setting it up, you can generate `compile_commands.json` with:
```bash
bazel run @hedron_compile_commands//:refresh_all
```
### Visual Studio
Visual Studio (2019 16.1+) can generate a compilation database via CMake integration. Open your project as a CMake project, then configure the generation in `CMakeSettings.json`:
```json
{
"configurations": [
{
"name": "x64-Debug",
"generator": "Ninja",
"buildRoot": "${projectDir}\\build",
"cmakeCommandArgs": "-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
}
]
}
```
Alternatively, for MSBuild-based projects (`.vcxproj`), you can use [compiledb-vs](https://github.com/pjbroad/compiledb-vs) or [catter](https://github.com/clice-io/catter) to generate the compilation database.
### Makefile
For Makefile-based projects, use [bear](https://github.com/rizsotto/Bear) to intercept compilation commands:
```bash
bear -- make
```
This will generate a `compile_commands.json` in the current directory. Note that `bear` requires a clean build to capture all commands — run `make clean` before `bear -- make` if needed.
Alternatively, if you use GNU Make, you can use [compiledb](https://github.com/nicktimko/compiledb):
```bash
compiledb make
```
### Meson
Meson generates a compilation database automatically during setup:
```bash
meson setup build
```
The `compile_commands.json` will be in the `build` directory.
### Xmake
Use one of the following approaches to generate a compilation database.
#### Command Line
Run the following command to manually generate a compilation database:
```bash
xmake project -k compile_commands --lsp=clangd build
```
> Compilation database generated manually doesn't automatically update itself. Re-generate if changes are made to the project.
#### VSCode Extension
The Xmake official VSCode extension automatically generates the compilation database when `xmake.lua` is updated. However, it generates the database to the `.vscode` directory by default. Add this setting in `settings.json`:
```json
"xmake.compileCommandsDirectory": "build"
```
to explicitly ask the extension to generate the compilation database in `build`.
### Others
For any other build system, you can use [catter](https://github.com/clice-io/catter) to generate a compilation database. It captures compilation commands through a fake compiler approach and is designed to work reliably with any build system that invokes a compiler executable.