Skip to content
Fangrui Song edited this page Jan 6, 2019 · 5 revisions

ccls is a stand-alone server implementing the Language Server Protocol for C, C++, and Objective-C languages. It can be used with any editor which provides an LSP client implementation. It originates from cquery.

The language client (editor plugin) opens an instance of ccls for each project. ccls runs in the background, indexing the source code in the project and responding to requests from editors.

ccls uses the Clang+LLVM libLLVM library to parse your source code, so it will recognize all language features supported by Clang.


First you must build ccls


You may (optionally) install ccls.

Editor Configuration

Next you must configure your editor to use ccls.

Project Setup

Finally you must set up your project for use with ccls.


You may wish to customize the way ccls indexes your project, for completeness and/or performance (especially for large projects).


If you need to debug issues with ccls these tips can help.


Some answers to frequently-asked questions.


Notes about the Language Server Protocol.

You can’t perform that action at this time.