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.
Next you must configure your editor to use ccls.
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.