C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting
Go to file
Fangrui Song 814f054e6e Misc improvement to indexer
* Make CXXConstructor span one more column to left/right
* Use OrigD to collect Decl::Record members
* Better comment parsing
* Limit lines of initializers and macro definition to 3
* Attribute macro arg uses to spelling loc
* Remove FuncDef::declaring_type
2018-07-15 16:51:20 -07:00
ci Use clang_File_tryGetRealPathName 2018-04-07 16:46:22 -07:00
clang_archive_hashes clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz.SHA256 -> 16.04 2018-05-13 09:07:19 -07:00
cmake Use clangTooling 2018-07-14 00:58:33 -07:00
index_tests Misc improvement to indexer 2018-07-15 16:51:20 -07:00
src Misc improvement to indexer 2018-07-15 16:51:20 -07:00
third_party Remove submodule doctest 2018-07-08 17:20:48 -07:00
.clang-format First draft: replace libclang indexer with clangIndex 2018-07-07 15:43:05 -07:00
.gitignore . 2018-03-31 00:53:39 -07:00
.gitmodules Remove submodule doctest 2018-07-08 17:20:48 -07:00
CMakeLists.txt Fix FreeBSD build with -DUSE_SHARED_LLVM=off 2018-07-14 09:19:27 -07:00
README.md Enable clangDriver in project.cc 2018-07-15 01:22:02 -07:00

ccls

ccls is a rewrite of cquery (originally written by Jacob Dufault), a C/C++/Objective-C language server.

It makes use of C++17 features, has less third-party dependencies and slimmed-down code base. Cross reference features are strenghened, (see wiki/FAQ. It currently uses libclang to index C++ code but will switch to Clang C++ API. Refactoring and formatting are non-goals as they can be provided by clang-format, clang-include-fixer and other Clang based tools.

The comparison with cquery as noted on 2018-07-15:

cquery ccls
third_party more fewer
C++ C++14 C++17
clang API libclang (C) clang/llvm C++
Filesystem AbsolutePath + custom routines llvm/Support
index libclang clangIndex, some enhancement
pipeline index merge+id remapping simpler and more robust

cquery has system include path detection (through running the compiler driver) while ccls uses clangDriver.

>>> Getting started (CLICK HERE) <<<