mirror of
https://github.com/MaskRay/ccls.git
synced 2024-11-21 23:25:07 +00:00
C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting
7a05f1ed06
When the rapidjson found by cmake is an older version it defines a variable RAPIDJSON_INCLUDE_DIRS instead of RapidJSON_INCLUDE_DIRS (#455). According to #383 we do not want to make these older version work with ccls. However currently if the rapidjson found by cmake is an older version that defined RAPIDJSON_INCLUDE_DIRS, then the cmake invocation still succeeds but any build command will fail because RapidJSON_INCLUDE_DIRS was never set properly. This makes the cmake invocation fail with a relevant error message in this event. |
||
---|---|---|
.github | ||
index_tests | ||
src | ||
third_party | ||
.appveyor.yml | ||
.clang-format | ||
.gitignore | ||
.gitmodules | ||
CMakeLists.txt | ||
LICENSE | ||
README.md |
ccls
ccls, which originates from cquery, is a C/C++/Objective-C language server.
- code completion (with both signature help and snippets)
- definition/references, and other cross references
- cross reference extensions:
$ccls/call
$ccls/inheritance
$ccls/member
$ccls/vars
... - formatting
- hierarchies: call (caller/callee) hierarchy, inheritance (base/derived) hierarchy, member hierarchy
- symbol rename
- document symbols and approximate search of workspace symbol
- hover information
- diagnostics and code actions (clang FixIts)
- semantic highlighting and preprocessor skipped regions
- semantic navigation:
$ccls/navigate
It has a global view of the code base and support a lot of cross reference features, see wiki/FAQ. It starts indexing the whole project (including subprojects if exist) parallelly when you open the first file, while the main thread can serve requests before the indexing is complete. Saving files will incrementally update the index.
>>> Getting started (CLICK HERE) <<<
ccls can index itself (~180MiB RSS when idle, noted on 2018-09-01), FreeBSD, glibc, Linux, LLVM (~1800MiB RSS), musl (~60MiB RSS), ... with decent memory footprint. See wiki/Project-Setup for examples.