Skip to content

20190823

Compare
Choose a tag to compare
@MaskRay MaskRay released this 22 Apr 15:47
· 64 commits to master since this release

This release supports Clang 7~10.

LSP conformance

  • Support null as initializationOptions
  • Set declarationProvider in server capabilities. Some client may need this capability to enable textDocument/declaration
  • Support non-numeric request ID #437

Misc

  • Fix a double-free of llvm::MemoryBuffer when parsing fails #350
  • Keep comments from system headers and improve textDocument/hover #373
  • Fix the conformance issue that VersionedTextDocumentIdentifier.version was omitted. If one renames something spanning more than one document and some documents are not opened, the client may not apply the textDocument/rename change. #387
  • Some macro diagnostics were lost because Note::concerned was not propagated to Diag::concerned #391
  • index.onChange: true support non-existent files #443
  • textDocument/definition: don't jump to the type definition
  • Disable warnings and skip processed function bodies. This should provide massive performance improvement when indexing a project. I measured 2x improvement indexing ccls with 2 threads, more than 2x indexing llvm/clang/extra/lld/compiler-rt with 6 threads.

Project

  • Fix some issues with hierarchical .ccls in #384
  • .ccls: support CUDA files with the %cu directive
  • compilationDatabaseDirectory can be absolute. #466
  • Improve heuristics for files not described by compile_commands.json "... but not so well for projects with separate include and source directories, e.g. "inc/long/path/to/my_file.h" and "src/long/path/to/my_file.cc" #441

Windows

  • A Visual Studio 2017 STL bug prevented clang-cl from compiling ccls/src/utils.hh #371 #414
  • If the file is re-saved before the previous indexing has complete, various ambiguous errors might occur. Fixing this by making opened files volatile #235 #453

Extension requests

  • $ccls/fileInfo: can optionally dump dependencies, includes and skipped_ranges

Patches

  • 0.20190823.3 incorrect use of clang::FileEntry::getName on Arch Linux #487