Releases: MaskRay/ccls
Releases · MaskRay/ccls
0.20250815.1
Full Changelog: 0.20241108...0.20250815.1
0.20250815
- textDocument/signatureHelp: add trigger character {
- initializationOptions: add clang.prependArgs
- Support Decl::Concept
- Adapt to llvm 21 and 22
0.20241108
- didOpen: sort index requests. When you open A/B/foo.cc, files under "A/B/" and "A/" will be prioritized during the initial indexing process, leading to a quicker response time.
- Support for older these LLVM versions 7, 8, and 9 has been dropped.
- LSP semantic tokens are now supported. See usage guide https://maskray.me/blog/2024-10-20-ccls-and-lsp-semantic-tokens usage (including rainbow semantic highlighting)
- textDocument/switchSourceHeader (LSP extension) is now supported.
0.20240505
For LLVM 19.1
0.20240202
Adapt llvm/llvm-project#74910: FileEntry::getName Based on a patch by @zsrkmyn
0.20230717
Disable -include b.hh => -include b.hh.{gch,pch} transition
See https://maskray.me/blog/2023-07-16-precompiled-headers for the
behavior.
0.20220729
Adapt llvmorg-15-init-7692-gd79ad2f1dbc2: PPCallbacks::InclusionDirec…
0.20210330
Fix short_name_size when getNameAsString does not return a prefix (#784)
20201219
This release supports Clang 7~11.
LSP
- Support 3.15.0
serverInfo - Report index status via
$/progress(WorkDoneProgressBegin/WorkDoneProgressReport/WorkDoneProgressEnd)
Project
- Better recursive
.cclsfiles
Misc
- New initialization option
completion.placeholder: change client.snippetSupport: false to drop(and<#412 - Infer -target and --driver-mode from argv[0] #511
- Support CMake variable
CLANG_LINK_CLANG_DYLIB(some distributions use this to providelibclang-cpp.soinstead oflibclang*.aorlibclang*.so. This option is needed to link againstlibclang-cpp.so) textDocument/documentSymbol: support unopened files #548- Disable PCH reading (the Clang library ccls links against may be different from the compiler. The compiler generated PCH files may cause ccls to error due to mismatching PCH versions)
- indexer: log the number of errors and the first diagnostic
- indexer: set the kind of static data members to Field instead of Var #593
- Support workspace as a symlink and symlinks with workspace #639
Pi Day
0.20190823.6 is newer than this one!
Building ccls requires at least clang 7. Support for Clang 6 was dropped. This release supports Clang 7, 8 and 9.
-DSYSTEM_CLANG=on should not be used. clang/llvm auto-download mechanism was deleted.
-DUSE_SYSTEM_RAPIDJSON=on is the default: use system rapidjson (instead of git submodule) if available.
-DLLVM_ENABLE_RTTI= and -DUSE_SHARED_LLVM= should not be used. Since #313, LLVMConfig.cmake ClangConfig.cmake are consulted to set sane values for the two variables.
Customization
- New initialization option
index.maxInitializerLines. Made some
ServerCapabilitiestoggable. - Initialization option
cacheDirectorywas renamed tocache.directory#278 - New initialization option
cache.hierarchicalPathto work around NAME_MAX
limitation: store cache files as$directory/a/b/c.cc.blobinstead of
$directory/a@[email protected]#278 - New initialization option
cache.retainInMemory: 2: change to 1 to avoid cache corruption if
the index file is changed after the initial load, which may happen if several
language clients open the same project and share the same cache directory #278 -log-file=stderris the default #219- Initialization option `compilationDatabaseCommand** works on Windows #220
Completion
- Enable documentation for signatureHelp
- Workaround for VSCode completion result sorting #210
- Rebuild preamble if its size changes #190
Index
- Support some unhandled Decl::Kind
- Index
TemplateTypeParmDeclandParmVarDeclin declarations for clang >= 9 - Line numbers can be
0~65535(was:0~32767) - Support multi-byte UTF-8 characters #268
- Decreased memory usage: "Change containers of Query*::Def fields from std::vector to ccls::Vec"
- New initialization option
index.initialNoLinkage: false: by default, the background indexer doesn't handle names of no linkage. This saves a lot of memory.
Others
- Make
textDocument/hovermore detailed: When hovering on a class, ccls tries hard to get the definition and displaysstruct D : B {}. It may display a forward declarationstruct Dbefore. - Normalize end-of-line sequences #293
- Log {Request,Notification}Message, and timestamp change due to dependency
textDocument/rename: mitigate edits in the same place and edits in macro replacement #296- Use DiagnosticRelatedInformation in clients that support it #276
- In
textDocument/documentSymbol, override declaration's range/selectionRange with definition's #309 - Better support when the workspace folder is a symlink #314