mirror of
https://github.com/MaskRay/ccls.git
synced 2025-11-04 06:15:20 +00:00
C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting
Fix build issue on Darwin:
```
Undefined symbols for architecture x86_64:
"clang::ObjCRuntime::tryParse(llvm::StringRef)", referenced from:
clang::driver::tools::Clang::AddObjCRuntimeArgs(llvm::opt::ArgList const&, llvm::SmallVector<char const*, 16u>&, clang::driver::tools::Clang::RewriteKind) const in libclangDriver.a(Clang.cpp.o)
"clang::VersionTuple::tryParse(llvm::StringRef)", referenced from:
clang::driver::ToolChain::computeMSVCVersion(clang::driver::Driver const*, llvm::opt::ArgList const&) const in libclangDriver.a(ToolChain.cpp.o)
"clang::DiagnosticIDs::getDiagnosticFlags()", referenced from:
clang::driver::Driver::handleAutocompletions(llvm::StringRef) const in libclangDriver.a(Driver.cpp.o)
"clang::DiagnosticIDs::getCategoryNameFromID(unsigned int)", referenced from:
clang::driver::Driver::HandleImmediateArgs(clang::driver::Compilation const&) in libclangDriver.a(Driver.cpp.o)
"clang::DiagnosticIDs::getNumberOfCategories()", referenced from:
clang::driver::Driver::HandleImmediateArgs(clang::driver::Compilation const&) in libclangDriver.a(Driver.cpp.o)
...
"_compress2", referenced from:
llvm::zlib::compress(llvm::StringRef, llvm::SmallVectorImpl<char>&, llvm::zlib::CompressionLevel) in libLLVMSupport.a(Compression.cpp.o)
"_compressBound", referenced from:
llvm::zlib::compress(llvm::StringRef, llvm::SmallVectorImpl<char>&, llvm::zlib::CompressionLevel) in libLLVMSupport.a(Compression.cpp.o)
"_crc32", referenced from:
llvm::zlib::crc32(llvm::StringRef) in libLLVMSupport.a(Compression.cpp.o)
"_uncompress", referenced from:
llvm::zlib::uncompress(llvm::StringRef, char*, unsigned long&) in libLLVMSupport.a(Compression.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang-6.0: error: linker command failed with exit code 1 (use -v to see invocation)
```
|
||
|---|---|---|
| ci | ||
| clang_archive_hashes | ||
| cmake | ||
| index_tests | ||
| src | ||
| third_party | ||
| .clang-format | ||
| .gitignore | ||
| .gitmodules | ||
| CMakeLists.txt | ||
| README.md | ||
ccls
ccls is a fork of cquery (originally written by Jacob Dufault), a C/C++/Objective-C language server.
- code completion (with both signature help and snippets)
- definition/references, and other cross references
- call (caller/callee) hierarchy, inheritance (base/derived) hierarchy, member hierarchy
- symbol rename
- document symbols and approximate search of workspace symbol
- hover information
- diagnostics
- code actions (clang FixIts)
- preprocessor skipped regions
- semantic highlighting, including support for rainbow semantic highlighting
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.