20190823
This release supports Clang 7~10.
LSP conformance
- Support
null
asinitializationOptions
- Set
declarationProvider
in server capabilities. Some client may need this capability to enabletextDocument/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 thetextDocument/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 #443textDocument/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
directivecompilationDatabaseDirectory
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