Fangrui Song
664f952f38
Implement textDocument/switchSourceheader
...
When the current file is X.cc, there might be multiple X.h.
Use a heuristic to find the best X.h.
Vote for each interesting symbol's definitions (for header) or
declarations (for non-header). Select the file with the most votes.
If `file_id2cnt` is empty, use a simpler heuristic.
2024-11-08 20:56:30 -08:00
Fangrui Song
cc13ced659
Support LSP semantic tokens
...
This patch implements `textDocument/semanticTokens/{full,range}`. If the
client supports semantic tokens, $ccls/publishSemanticHighlight (now
deprecated) is disabled.
These token modifiers are mostly useful to emphasize certain symbols:
`static, classScope, globalScope, namespaceScope`.
To enable a colorful syntax highlighting scheme, set the
highlight.rainbow initialization option to 10.
https://maskray.me/blog/2024-10-20-ccls-and-lsp-semantic-tokens
Note that the older $ccls/publishSemanticHighlight protocol with
highlight.lsRanges==true (used by vscode-ccls) is no longer supported.
2024-11-05 21:57:24 -08:00
Fangrui Song
50fd8d069e
Drop support for LLVM 7, 8, and 9
2024-11-01 23:50:25 -07:00
Fangrui Song
192a82ba85
.clang-format: ColumnLimit: 120
2024-10-21 17:52:44 -07:00
Fangrui Song
349cdc471b
didOpen: Sort index requests by approximity to working files
...
For a large project, it is preferable to prioritize indexing files
neighboring working files.
2024-10-21 17:49:54 -07:00
Sam James
ddbe41300f
utils: Add <cstdint>
( #968 )
...
utils uses `uint64_t` without including `<cstdint>`
which fails to build w/ GCC 15 after a change in libstdc++ [0]
[0] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=3a817a4a5a6d94da9127af3be9f84a74e3076ee2
2024-10-02 17:36:02 -07:00
Fangrui Song
e5e101253a
Adapt llvmorg-19-init-9465-g39adc8f42329: BuiltinType::ArraySection
2024-05-05 17:49:30 -07:00
Fangrui Song
559b416409
Adapt llvmorg-19-init-9119-g4ec9a662d388: startswith/endswith removal
2024-05-05 17:49:30 -07:00
Fangrui Song
88e382f8a3
Adapt llvmorg-19-init-1720-gda95d926f6fc: InclusionDirective
2024-05-05 17:44:13 -07:00
Fangrui Song
f8d2778b65
Adapt llvm/llvm-project#74910 : FileEntry::getName
...
Based on a patch by @zsrkmyn
2024-02-02 00:05:55 -08:00
Fangrui Song
f36ecb0c0e
Adapt llvmorg-18-init-13684-ge1e34cc2a17c: llvm/Support/Host.h
2023-12-14 22:08:17 -08:00
Fangrui Song
490edc1e02
Adapt llvmorg-18-init-10631-gedd690b02e16: TTK_*
2023-11-15 16:01:09 -08:00
Fangrui Song
7b17426b9f
Adapt llvmorg-18-init-4877-g62e576b454e1: getLangOpts
2023-09-09 19:43:27 -07:00
Fangrui Song
ee2d4f5b9a
Disable -include b.hh => -include b.hh.{gch,pch} transition
...
See https://maskray.me/blog/2023-07-16-precompiled-headers for the
behavior.
2023-07-17 16:06:49 -07:00
Fangrui Song
ba38e13b93
Adapt llvmorg-17-init-4072-gcc929590ad30: PrecompiledPreamble::Build
2023-04-11 11:04:01 -07:00
Fangrui Song
8bc3959537
Use raw module format to fix -gmodules crash
...
To avoid `llvm::report_fatal_error("unknown module format")` in getPCHContainerWriter.
See a3e2ff19e5
2023-01-15 12:14:42 -08:00
Fangrui Song
2468edc0b3
cmake: Adapt llvmorg-16-init-15123-gf09cf34d0062 (LLVMTargetParser)
2023-01-14 21:37:52 -08:00
Fangrui Song
6dc564f2a8
Adapt llvm::Optional deprecation
2023-01-09 16:03:16 -08:00
Fangrui Song
8a93950fb9
Add callHierarchy
2022-11-03 00:20:22 -07:00
Fangrui Song
74458915b3
Adapt llvmorg-15-init-7692-gd79ad2f1dbc2: PPCallbacks::InclusionDirective parameter
2022-04-16 22:29:03 -07:00
Fangrui Song
790daca4b2
query: include llvm/ADT/STLExtras.h
...
The header is no longer transitively included in 2022-01.
2022-01-30 11:17:32 -08:00
augiedoggie
b28cec1872
platform_posix: add support for Haiku ( #863 )
2022-01-23 00:22:29 -08:00
Fangrui Song
c7596e3712
initialize: Add offsetEncoding to InitializeResult
2022-01-11 19:25:21 -08:00
Fangrui Song
8422f0a522
Adapt llvmorg-14-init-13600-g92417eaf3329: braced constructor call
2022-01-09 12:25:07 -08:00
Fangrui Song
dce86b1362
cmake: Add LANGUAGE C to fix find_package(Clang REQUIRED) error
2021-12-15 10:14:34 -08:00
Fangrui Song
5a48e6c419
sema_manager: only keep latest session.maxNum sessions in case of a surge of textDocument/didChange
2021-09-23 14:41:51 -07:00
Fangrui Song
3ce756e39a
Adaopt llvmorg-14-init-3863-g601102d282d5: refactor clang::isIdentifierBody
2021-09-23 13:36:01 -07:00
Fangrui Song
f21fd7e5a2
pipeline: Avoid Twine
...
For some reason, Twine(int), when concatenated, may incorrectly become Twine(const unsigned long&) and cause a dereference crash.
2021-06-26 12:07:41 -07:00
Fangrui Song
80d06eb476
sema_manager: Use llvm::CrashRecoveryContext
2021-05-18 21:01:50 -07:00
Ludovic J
c018bce9af
hierarchicalDocumentSymbol: use a range based method to support
...
out-of-line class members (#674 )
2021-05-09 11:33:34 -07:00
Fangrui Song
c6686be382
ccls_lsp
...
The old name was somehow taken.
2021-04-05 18:04:57 -07:00
zhangjunphy
0ada56ef3b
Fix short_name_size when getNameAsString does not return a prefix ( #784 )
2021-03-30 23:33:43 -07:00
Fangrui Song
4cd308d7fd
Adapt llvmorg-12-init-17739-gf4d02fbe418d: change CanReuse
2021-01-28 00:18:27 -08:00
Yu Zeng
aca02d209b
Fix compile error when use msvc 2019 ( #754 )
...
See https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
2021-01-18 19:05:28 -08:00
Fangrui Song
40145807d5
completion: Don't overwrite the following identifier ( #749 )
2021-01-09 11:12:33 -08:00
Fangrui Song
a2d2fd8167
diagnosticMain: Rebuild preamble for bounds change
2020-12-26 12:31:41 -08:00
Jan Lahoda
4ff22e6603
Making the progress an integer, as per the specification ( #739 )
2020-12-26 12:30:53 -08:00
Fangrui Song
4c66fdf09d
Resolve "directory" in compile_commands.json in case CWD is not the project root
...
Also delete an unneeded chdir hack.
Close #703
2020-12-19 21:42:21 -08:00
Fangrui Song
feb153a843
Adapt llvmorg-12-init-11522-g4c55c3b66de: change ComputePreambleBounds
2020-11-18 22:33:04 -08:00
Fangrui Song
68d6e4122d
project: fix initial directory list for recursive .ccls
...
Fix #717
2020-11-06 18:55:01 -08:00
Fangrui Song
a3c5d4a1eb
Adapt llvmorg-12-init-5498-g257b29715bb: add an argument to the ctor of clang::driver::Driver
2020-09-23 16:06:49 -07:00
Fangrui Song
20a9f7b5f4
clang_tu: set RecoveryAST & RecoveryASTType
2020-08-30 10:21:58 -07:00
Fangrui Song
55c0d5b4eb
project: override the compdb entry with .ccls if compile_commands.json is not used
...
Note: `exact_match` should be false if the entry is an synthetic one, instead
of an explicit entry in compile_commands.json
2020-08-26 11:36:55 -07:00
Fangrui Song
aa4d2d1b43
If clang >= 10, don't crash on #pragma clang __debug
2020-08-22 10:29:39 -07:00
Fangrui Song
125915e254
Adapt llvmorg-12-init-946-g10b1b4a231a: add find_package(ZLIB)
2020-07-25 08:30:18 -07:00
Fangrui Song
ca95f48a53
Support workspaces as symlinks and symlinks within a workspace
...
Fix #639
2020-07-19 17:03:16 -07:00
Fangrui Song
5108cfafcb
Report index status via $/progress
...
Add WorkDoneProgress to represent WorkDoneProgressBegin/WorkDoneProgressReport/WorkDoneProgressEnd.
2020-07-04 10:05:26 -07:00
Ernest Borowski
468258d641
cmake: Fix rapidJSON version detection
2020-06-29 22:46:00 -07:00
Fangrui Song
6244594d71
indexer: log the number of errors and the first diagnostic
...
Example log:
```
15:47:45 indexer1 pipeline.cc:379 I parse /tmp/d/a.c error:1 use of undeclared identifier 'arg'
clang /tmp/d/a.c --gcc-toolchain=/usr -working-directory=/tmp/d/
```
2020-06-28 17:16:35 -07:00
Fangrui Song
8cf8a3c4a4
Disable PCH reading/writing
2020-06-14 23:16:13 -07:00