Skip to content

Architecture

Protocol

Use C++ to describe type definitions in the Language Server Protocol.

AST

Some convenient wrappers for clang AST interfaces.

Async

Wrapper for libuv coroutines using C++20 coroutines.

Compiler

Wrapper for clang compilation interfaces, responsible for actual compilation processes and obtaining various compilation information.

Feature

Specific implementations of various LSP features.

Server

clice is a language server, first and foremost a server. It uses libuv as the event library, adopting a common event-driven compilation model. The main thread is responsible for handling requests and dispatching tasks, while the thread pool is responsible for executing time-consuming tasks, such as compilation tasks. Related code is located in the Server directory.

Support

Some other utility libraries.