r/cpp • u/ykiko_2005 • 3h ago
clice 1.0: a C++ language server built on Clang, with C++20 modules out of the box, non-self-contained headers, and crash isolation
Hi r/cpp! I've been working on clice, a C++ language server built on Clang, for about two and a half years, and 1.0 is out today. The main differences from clangd:
Every compile runs in a worker process, so a Clang crash costs one request instead of the whole server.
C++20 modules work out of the box from a `compile_commands.json`, with PCHs and PCMs cached on disk across sessions.
Non-self-contained headers are compiled in the context of a file that includes them, and you can switch contexts and build configurations.
Template support: completion and go-to-implementation through dependent names, using instantiations when there are any.
A CLI to index, query, refactor and modularize whole projects.
The post covers the features and the story behind it. Binaries for Linux, macOS and Windows (x64 and arm64) are on the release page, and the VS Code extension is on the Marketplace. Feedback and bug reports are very welcome!
Release post: https://ykiko.me/en/articles/2105384023094834022/