Commit Graph

1954 Commits

Author SHA1 Message Date
Fangrui Song
962c0e72b4 Clear index requests upon "exit"
to make indexers stop in time. This is especially relevant when there
are many initial index requests.
2025-01-28 10:34:19 -08:00
Ka Ho Ng
48f1a006b7
Reformat all the files after 192a82b (#979)
Since the introduction of "ColumnLimit: 120" in .clang-format, the
column limit has become 120 characters instead of 80 characters.

This prevents clang-format from generating too much changes even if just
a small portion of a source file or header file is modified.
2024-12-06 17:58:19 -08:00
Fangrui Song
4331c89586 Adapt llvmorg-20-init-12964-gdf9a14d7bbf1: createDiagnostics 2024-11-23 18:33:49 -08:00
Fangrui Song
3640f899f1 textDocument/signatureHelp: add trigger character {
to enable https://reviews.llvm.org/D116317
2024-11-09 23:10:55 -08:00
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