In the 6.0.1 -> 7.0.0 LLVM migration of
f27639babf, archive hashes were added for
the LLVM 7.0.0 binaries not only for Ubuntu 16.04, but also for Ubuntu
14.04. The DownloadAndExtractClang.cmake functionality would never allow
making use of the latter, however; always using the Ubuntu 16.04 LLVM
7.0.0 binary in case of OS Linux.
This commit generalizes the archive name derivation for when the current
platform is Ubuntu, while persisting using Ubuntu 16.04 as default
archive in case CMAKE_SYSTEM_NAME is Linux (even if the actual dist is
not Ubuntu).
This change will also facilitate keeping backwards compatibility with
Ubuntu 16.04 (possibly 14.04) for the upcoming LLVM 8.0.0 migration,
where an archive for Bionic (18.04) is expected to be included (which may
be chosen as the default).
Delete method.{cc,h}
Rename $ccls/setSkippedRanges to $ccls/publishSkippedRanges
Rename $ccls/publishSemanticHighlighting to $ccls/publishSemanticHighlight; stableId -> id
* Better LanguageId detection with clangDriver (e.g. .cu -> types::TY_CUDA)
* fallback when there is no .ccls or compile_commands.json
Also Hide clangTooling options from --help
1. Fixed a bug on building document symbol tree: As sym2ds was updated in
place, nested funcs/types may be moved into children of another
lsDocumentSymbol before itself got processed.
2. Namespaces only have declarations, in the old implementation it wasn't included in the result, making the result less hierarchical. This
commit fixes this by including the declarations of a symbol if no
definitions found.
* Fix additionalTextEdits -> textEdit hack for VS Code
Visual Studio Code filters the completion result according to
textEdit.range and filterText, if the textEdit.range overlaps with
existing text, we have to include it in filterText, otherwise it would
be filtered out.
* Fix has_open_paren in FilterCandidates
blacklist some undesired candidates
additionalTextEdits if clang>=7
Use CodePatterns for preprocessor directive completion if there is a #
Prefer textEdit over insertText
* Delete index.enabled which can be achieved with index.blacklist: ['.']
* Move completion.include* to completion.include.*
* move largeFileSize to highlight.largeFileSize
index.{blacklist,whitelist}: disable indexes thoroughly
index.initial{Blacklist,Whitelist}: disable initial loading. will still be indexed after opening
Move using below #include to make preamble happy
textDocument/references: if no references, first line or last line => list where this file is included
malloc_trim() only if files have been indexed in last cycle
Intern: use CachedHashStringRef