Skip to content

Pi Day

Compare
Choose a tag to compare
@MaskRay MaskRay released this 22 Apr 06:48
· 95 commits to master since this release

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