Bastian Beranek
874be9223a
Workaround inconsistency in intersection between ranges.
...
Sadly there is some confusion about ranges in the LSP protocol. It turns out
that VS code, when requesting code actions, sends range s,e in the request,
with the associated meaning that e is _included_ in the range, i.e. the interval
is [s,e]. The emacs lsp-mode also uses this convention.
However, the protocl specifies that the end in the range s,e should not be part
of the interval, i.e. s,e is supposed to correspond to [s,e[:
https://microsoft.github.io/language-server-protocol/specifications/specification-3-17/#range
This was brought up with emacs-lsp, where the maintainer stated that he prefers
to stay compatbile with VS code rather than the protocol, and that the protocol
should likely be amended:
https://github.com/emacs-lsp/lsp-mode/issues/3144
If that is the case, ccls intersection between ranges should be amended for now,
such that the end parameter is part of the range.
2021-10-23 12:18:00 +02: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
Victor Sui
7a05f1ed06
cmake: Fail loudly when found rapidjson is too old ( #646 )
...
When the rapidjson found by cmake is an older version it defines a
variable RAPIDJSON_INCLUDE_DIRS instead of RapidJSON_INCLUDE_DIRS (#455 ).
According to #383 we do not want to make these older version work with
ccls. However currently if the rapidjson found by cmake is an older
version that defined RAPIDJSON_INCLUDE_DIRS, then the cmake invocation
still succeeds but any build command will fail because
RapidJSON_INCLUDE_DIRS was never set properly. This makes the cmake
invocation fail with a relevant error message in this event.
2020-06-14 23:15:48 -07:00
Ludovic Jozeau
c5acf62060
indexer: set the kind of static data members to Field instead of Var
...
Otherwise it is impossible to distinguish a static variable from a
static member variable.
Close #593
2020-04-22 09:08:20 -07:00
Fangrui Song
de800ebb70
sema_manager: report diagnostics in macro expansions
...
Fix #608
2020-04-19 11:27:57 -07:00
Fangrui Song
c10642d29b
Delete ci/ and use .gitignore whitelist
2020-03-22 09:50:48 -07:00
Evan Klitzke
386f714f5e
Set indexer threads' priority to ThreadPriority::Background ( #538 )
2019-12-02 19:20:39 -08:00
Fangrui Song
6c87a4656c
project: decrease score if .c is matched against .hh ( #549 )
2019-12-22 10:06:34 -08:00
akocis
e373f9ed97
position: support line numbers larger than INT16_MAX (but <= UINT16_MAX) ( #553 )
2019-12-27 20:56:50 +01:00
Jan Lahoda
a2ecd9a8f0
textDocument/documentSymbol: support unopened files ( #548 )
2019-12-22 09:26:23 +01:00
xVan Turing
06a04d5102
indexer: add name for anonymous Enum
2019-11-16 05:42:51 +08:00
Felicián Németh
760f5e57ff
initialize: implement serverInfo (LSP 3.15.0)
...
Return serverInfo for an initialize request. This helps clients to
identify ccls even when they just connect to a TCP port and allows them
to easily implement server specific functionalities like $ccls/navigate.
2019-11-11 10:19:24 +01:00
Fangrui Song
0a1e08a8ca
indexer: fix getAdjustedDecl for explicit instantiations; fix incorrect short_offset_size=1 when name is empty
...
Fix #516
2019-11-09 13:27:09 -08:00
Fangrui Song
7e795e9b9e
cmake: support CLANG_LINK_CLANG_DYLIB
2019-11-01 10:36:38 -07:00
Fangrui Song
0fe8a16504
Infer -target and --driver-mode from argv[0]
...
Fix #511
2019-10-31 22:31:03 -07:00
Fangrui Song
5935db10fd
Fix some clang-tidy warnings
...
Incorporated some fixes by Daniel Chabrowski (#467 )
2019-10-10 19:24:44 -07:00
Fangrui Song
2bffff7b0b
Add initialization option completion.placeholder; change client.snippetSupport: false to drop ( and <
...
* client.snippetSupport: false => `foo`
* client.snippetSupport: true
+ completion.placeholder: false => `foo($1)$0` `bar<$1>()$0`
+ completion.placeholder: true => `foo(${1:int a}, ${2:int b})$0` `bar<${1:typename T}>()$0`
Note, client.snippetSupport is always false if the client does not support snippets.
Close #412
2019-10-06 23:54:45 -07:00
Fangrui Song
aa9668a8fc
completion: don't reuse cache if the buffer line has changed
...
Fix emacs-ccls#54
2019-09-26 23:25:09 -07:00
Fangrui Song
0c6be472ce
project: strip -Xclang <arg>
2019-09-11 19:05:04 -07:00
Fangrui Song
b3d694b8bd
indexer: disable warnings and skip processed function bodies
...
Adapt clang rC370337: removal of createIndexingAction and WrappingIndexAction
2019-08-21 18:59:41 -07:00
Fangrui Song
65f86d0498
indexer: llvm::sys::fs::UniqueID -> clang::FileID
...
Fix a minor issue that an empty included file is not recorded.
Note, we need to skip invalid uid2lid_and_path because
otherwise lid2path may contain invalid entries with lid: 0,
which will cause the file entry with file_id 0 to have an empty path.
2019-08-21 23:46:02 -07:00
Fangrui Song
0f0e679edb
indexer: delete redundant consumeFile
2020-04-21 21:43:56 -07:00
Fangrui Song
6717986541
Adapt llvmorg-11-init-1314-g777180a32b6: StringRef's conversion to std::string is now explicit
...
For compatibility with LLVM 7, the call sites have to be a bit verbose.
2020-01-29 00:29:06 -08:00
Fangrui Song
61a1071634
💥 Rename FunctionName -> functionName, VarName -> var_name
2019-08-22 10:12:03 -07:00
Fangrui Song
62fbde7873
textDocument/definition: don't jump to the type definition
2019-08-22 02:24:20 -07:00
Fangrui Song
50d7fbc235
project: allow absolute compilationDatabaseDirectory
...
Fix #466
2019-08-16 19:34:11 -07:00