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
Shengjing Zhu
0eebe0c1a9
Support override CLANG_RESOURCE_DIR
...
The result from clang commandline is something like
/usr/lib/llvm-7/lib/clang/7.0.1
Which means I need to recompile when the clang is upgraded to newer 7.x.x
However the system has a convenient symlink, which is
/usr/include/clang/7.
2019-08-11 18:06:47 +08:00
Fangrui Song
17dc4a6ecc
Construct SourceManager with UserFilesAreVolatile
...
Fix #235 . Close #453
In clang, it may be worth generalizing UserFilesAreVolatile (introduced in rC160074) to FilesAreVolatile.
2019-07-30 21:18:34 -07:00
Fangrui Song
a43e51f3bf
project: improve ComputeGuessScore heuristics
2019-07-20 06:13:53 -07:00
Fangrui Song
ab6498e2ff
Support indexing non-existent files in index.onChange:true mode
2019-07-20 01:16:15 -07:00
Fangrui Song
86a93b2d71
$ccls/fileInfo: optionally dump dependencies, includes and skipped_ranges
2019-07-20 02:24:07 -07:00
Riatre Foo
3dac492025
Change RequestId::value from int to std::string to allow non-numeric IDs.
2019-07-16 14:39:35 +08:00
Dan Čermák
795ad205d7
Only add include directories for LLVM, clang & rapidjson if they are not in CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
...
/usr/include/c++/9 comes before /usr/include in `{clang,gcc} -v -fsyntax-only -xc++ /dev/null`.
target_include_directories(ccls SYSTEM PRIVATE ${RapidJSON_INCLUDE_DIRS})
If ${RapidJSON_INCLUDE_DIRS} resolves to /usr/include, /usr/include will
be shuffled before /usr/include/c++/9 and will cause `#include_next <stdlib.h>`
issues (see https://github.com/MaskRay/ccls/pull/417 ).
Check if the include directories are already in CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES.
2019-06-27 12:19:11 +02:00
Fangrui Song
c728fe9795
project: support %cu directive and strip -M* options
2019-06-27 19:11:38 -07:00
Fangrui Song
ab4b4efcaf
pipeline: report changed arg
2019-06-27 01:41:25 -07:00
TÖRÖK Attila
b7027f89e5
threaded_queue.hh: fix -Wpessimizing-move ( #409 )
2019-06-18 08:45:20 +02:00
Fangrui Song
20883c047c
utils.hh: work around MSVC STL bug
2019-06-17 23:42:48 -07:00
Fangrui Song
0d911077f4
Set Diag::concerned if any of its Notes is concerned
2019-05-12 09:03:58 -07:00
Fangrui Song
fd3e82b682
Refactor FindEntry and use best-fit .ccls
...
Fixes an issue with hierarchical .ccls found by Riatre in #384
2019-04-29 08:44:52 -07:00
Fangrui Song
94727b7eae
JsonWriter: write "null" if VersionedTextDocumentIdentifier.version is null
...
Fix #387
2019-04-30 06:22:32 -07:00
Riatre Foo
aa2f55eb2b
Append '/' before populating folder.dot_ccls
2019-04-28 19:11:10 +08:00
Fangrui Song
0951004370
Set RetainCommentsFromSystemHeaders to true
...
Note with -fretain-comments-from-system-headers, the .gch of bits/stdc++.h becomes larger by 1%, but that is fine.
And improve comment handling in textDocument/hover
Fix #373
2019-04-11 22:26:07 -07:00
Fangrui Song
3a364c868b
Set RetainRemappedFileBuffers to true
...
Reported by David Welch in #350 .
This fixes double-free of llvm::MemoryBuffer when parsing fails.
2019-03-29 07:48:58 -07:00
Fangrui Song
4c871d9783
Add error checking of object deserialization; ignore non-object initializationOptions
2019-03-29 06:54:41 -07:00
Fangrui Song
4808ccb32c
Add missing headers to adapt llvmorg-11-init-5501-g213aea4c583 and llvmorg-11-init-5528-gd7c5037e6b9
2020-03-12 08:35:59 -07:00
Fangrui Song
b0d42ad8f2
Adapt llvmorg-10-init-12036-g3b9715cb2193: handleDeclOccurence -> handleDeclOccurrence
2019-12-16 22:11:31 -08:00
Fangrui Song
a858567686
Adapt rL364464: clang::FrontendAction::Execute returns llvm::Error instead of bool
2019-06-27 01:10:04 -07:00
Fangrui Song
aab9dd6642
Simplify: hide unrelated options
2019-05-08 07:45:17 -07:00
Fangrui Song
34c5954420
Adapt clang rC358696: removal of OutputIsBinary
2019-04-18 19:16:24 -07:00
Fangrui Song
1066548dba
Adapt D73392 - split of llvm/Support/Allocator.h
2020-01-25 09:57:16 -08:00
Fangrui Song
f1cbf8d550
Adapt clang rC357037: removal of setVirtualFileSystem
2019-03-26 18:42:48 -07:00
Fangrui Song
17eaca8a02
Add initialization option index.initialNoLinkage: false
...
By default, the background indexer doesn't handle names of no linkage.
They are indexed when their files are opened. This saves memory and
makes cache files smaller.
2019-03-24 23:42:00 -07:00
Paul Smith
b6155ddf73
Enhance the output of --version with Git describe results. ( #342 )
2019-03-23 20:24:10 -04:00
Fangrui Song
7bee63d0e0
Change containers of Query*::Def fields from std::vector to ccls::Vec
...
Query*::Def contain several immutable std::vector fields. Change them to
ccls::Vec to save bytes which were wasted by `capacity`.
2019-03-15 09:33:44 -07:00
Fangrui Song
e576df4f6f
Add initialization option index.name.suppressUnwrittenScope (default: false)
2019-03-10 08:55:01 -07:00
Fangrui Song
dbf7d8eb41
If the workspace folder is a symlink, convert paths relative to it ( #314 )
...
If the workspace folder is a symlink and the client doesn't follow it.
Treat /tmp/symlink/ as canonical and convert every /tmp/real/ path to
/tmp/symlink/.
2019-03-10 00:27:50 -08:00
Fangrui Song
7c70c0662f
cmake: use {LLVM,Clang}Config.cmake
...
Combined Daan De Meyer's #227 with other simplification
* USE_SHARED_LLVM is deleted in favor of LLVM_LINK_LLVM_DYLIB
* LLVM_ENABLE_RTTI is deleted as it is provided by LLVMConfig.cmake
* Only direct Clang/LLVM dependencies are required in target_link_libraries
* Restrict -DCLANG_RESOURCE_DIRECTORY= to src/utils.cc
2019-03-09 19:45:37 -08:00
Fangrui Song
5d27ac9f34
Add excludeRole to documentSymbol and override declaration's range/selectionRange with definition's
2019-03-08 23:37:08 -08:00
Fangrui Song
478f849ada
cmake: add option to use system rapidjson if exists
2019-03-08 22:46:43 -08:00
Fangrui Song
9ca095f49e
Misc
2019-03-02 18:18:02 -08:00
Fangrui Song
6a3cff6e50
Make clang.excludeArgs accept glob patterns
2019-03-04 18:21:53 -08:00
Fangrui Song
6c7b868556
stdin: synthesize an "exit" NotificationMessage in abnormal termination
2019-03-04 06:52:07 -08:00
Fangrui Song
beff1f6e89
textDocument/rename: mitigate edits in the same place and edits in macro replacement
...
Mitigate edits in the same place (#294 ) and:
// textDocument/rename on `f`
void f();
void g() { m(); } // incorrectly rewrote m() before
2019-03-01 18:35:13 -08:00
Fangrui Song
4047db2669
Add .github/ISSUE_TEMPLATE
...
Adapted from https://github.com/hlissner/doom-emacs
2019-03-01 17:37:37 -08:00