Skip to content

Releases: MaskRay/ccls

0.20250815.1

15 Nov 22:44

Choose a tag to compare

Full Changelog: 0.20241108...0.20250815.1

0.20250815

13 Oct 03:52

Choose a tag to compare

  • textDocument/signatureHelp: add trigger character {
  • initializationOptions: add clang.prependArgs
  • Support Decl::Concept
  • Adapt to llvm 21 and 22

0.20241108

09 Nov 05:01

Choose a tag to compare

  • 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

30 Sep 04:56

Choose a tag to compare

For LLVM 19.1

0.20240202

19 Apr 20:12

Choose a tag to compare

Adapt llvm/llvm-project#74910: FileEntry::getName

Based on a patch by @zsrkmyn

0.20230717

19 Apr 20:12

Choose a tag to compare

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

29 Jul 18:10

Choose a tag to compare

Adapt llvmorg-15-init-7692-gd79ad2f1dbc2: PPCallbacks::InclusionDirec…

0.20210330

06 Apr 17:03

Choose a tag to compare

Fix short_name_size when getNameAsString does not return a prefix (#784)

20201219

25 Oct 22:27

Choose a tag to compare

This release supports Clang 7~11.

LSP

  • Support 3.15.0 serverInfo
  • Report index status via $/progress (WorkDoneProgressBegin/WorkDoneProgressReport/WorkDoneProgressEnd)

Project

  • Better recursive .ccls files

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 provide libclang-cpp.so instead of libclang*.a or libclang*.so. This option is needed to link against libclang-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

22 Apr 06:48

Choose a tag to compare

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
    ServerCapabilities toggable.
  • Initialization option cacheDirectory was renamed to cache.directory #278
  • New initialization option cache.hierarchicalPath to work around NAME_MAX
    limitation: store cache files as $directory/a/b/c.cc.blob instead 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=stderr is 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 TemplateTypeParmDecl and ParmVarDecl in 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/hover more detailed: When hovering on a class, ccls tries hard to get the definition and displays struct D : B {}. It may display a forward declaration struct D before.
  • 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