Fangrui Song
96e0f0fafa
clangIndex
2019-10-24 00:55:39 -07:00
Fangrui Song
9b54e5391c
Clean up clang_tu; retrieve comments with clang::ASTContext::getRawCommentForAnyRedecl
2019-10-24 00:55:39 -07:00
Fangrui Song
103aa711d3
First draft: replace libclang indexer with clangIndex
2019-10-24 00:53:16 -07:00
Fangrui Song
a94788b89f
textDocument/references: add excludeRole
2019-10-24 00:18:13 -07:00
Fangrui Song
b784685c61
diagnostics
2019-10-24 00:18:13 -07:00
Fangrui Song
2682964039
Rename message files (e.g. ccls_call_hierarchy.cc -> ccls_callHierarchy.cc)
2019-10-24 00:17:28 -07:00
Fangrui Song
9852e618cd
Add all to textDocument/documentSymbol
2019-10-24 00:17:28 -07:00
Fangrui Song
7198db1777
Use ChangeStd{in,out}ToBinary
2019-10-24 00:17:28 -07:00
Fangrui Song
b6375de2f3
Display diagnostics from header files
2019-10-24 00:17:28 -07:00
Fangrui Song
a96d9613f4
Put static const
into IndexVar::def (a definition is not required unless odr-used)
2019-10-24 00:17:28 -07:00
Fangrui Song
9b9bf1cd19
Fix .. in compdb path; better type alias
2019-10-24 00:17:28 -07:00
Fangrui Song
1830103ec6
Internalize strings & remove diagnostics_publisher.cc
2019-10-24 00:17:28 -07:00
Fangrui Song
d21476d7ee
Inject anonymous struct/union into parent scopes
2019-10-24 00:17:28 -07:00
Fangrui Song
732e002b13
Infer system include paths from CompilerInvocation
2019-10-24 00:17:28 -07:00
Fangrui Song
18fa5efa2a
Add Config->reparseForDependency
...
Specify 1 if for large projects you don't want to reparse dependents at load time when a common .h changes.
2019-10-24 00:17:28 -07:00
Fangrui Song
d165a0b0ea
Use clang::PrintingPolicy and remove type_printer
2019-10-24 00:17:28 -07:00
Fangrui Song
806a05b234
Add Config->largeFileSize; pure virtual or defaulted methods are definitions; fix $ccls/callHierarchy
2019-10-24 00:17:28 -07:00
Fangrui Song
f0559bba54
Remove Timer and PerformanceImportFile
2019-10-24 00:17:28 -07:00
Fangrui Song
34dc1e93e9
Remove WithFileContent & lex_utils.{cc,h}
2019-10-24 00:17:28 -07:00
Fangrui Song
da545f1139
$ccls/vars: differentiate local/field/parameter
2019-10-24 00:17:28 -07:00
Fangrui Song
bb08fdfa02
Remove $ccls/random; remove DB::symbols; decrease DB::entities grow rate
2019-10-24 00:17:25 -07:00
Fangrui Song
42bcf2b58f
$ccls/memberHierarchy: add field offset
2019-10-23 21:56:51 -07:00
Fangrui Song
a962061698
Simplify pipeline
2019-10-23 21:56:51 -07:00
Fangrui Song
cf0d16fa0c
Replace loguru with a custom logger
2019-10-23 21:56:51 -07:00
Fangrui Song
a6094ef714
Simplify; improve $ccls/inheritanceHierarchy
2019-10-23 21:56:51 -07:00
Fangrui Song
f5ce45fd55
filesystem.cc: deduplicate with UniqueID
2019-10-23 21:56:51 -07:00
Fangrui Song
6d96d9dce2
textDocument/references: include base references by default
2019-10-23 21:56:51 -07:00
Fangrui Song
c279090ac5
cmake: link against zlib; use StringMap
2019-10-23 21:56:51 -07:00
Fangrui Song
d2e0c7ca24
clean up clang_complete found by scturtle; clean up project
2019-10-23 21:56:51 -07:00
Fangrui Song
f9e1e8cbdc
Congratulations to Tea Deliverers
2019-10-23 21:56:51 -07:00
Fangrui Song
36729818c3
experimental/filesystem -> LLVM/Support/FileSystem.h; sparsepp -> DenseMap
2019-10-23 21:56:51 -07:00
Fangrui Song
c81ca26a2e
Use llvm::cl and simplify main.cc import_pipeline.cc
2019-10-23 21:56:51 -07:00
Fangrui Song
c269876593
Use clang+llvm C++ in cmake; parse args with clang driver
2019-10-23 21:56:51 -07:00
Fangrui Song
b349983e13
cmake: make FreeBSD 11,12 build
2019-10-23 21:56:51 -07:00
Fangrui Song
a385bffcbd
Backport and cleanup
2019-10-23 21:56:51 -07:00
scturtle
4797401d55
Fix file_id. ( #8 )
2019-10-23 21:56:51 -07:00
scturtle
888a870c0d
Random changes. ( #6 )
2019-10-23 21:56:51 -07:00
Fangrui Song
ba56663055
Reflect optional by Brandon Tolsch
2019-10-23 21:56:51 -07:00
Fangrui Song
49e042e070
Redesign import_pipeline.cc and mitigate race (duplicate Query*::uses for initial indexing)
2019-10-23 21:56:51 -07:00
Fangrui Song
aba672203f
README
2019-10-23 21:56:51 -07:00
Fangrui Song
8e703af84e
.
2019-10-23 21:56:51 -07:00
Fangrui Song
13c451a7cd
.
2019-10-23 21:56:51 -07:00
Fangrui Song
eb057c7acd
Use usr as primary key and remove id; simplify import pipeline
...
Remove on_id_map, IndexMergeIndexUpdates
2019-10-23 21:56:51 -07:00
Fangrui Song
5ef801662b
Improve workspace/symbol sorting heuristic
2019-10-23 21:56:51 -07:00
Fangrui Song
f73100adf3
Merge {timestamp_manager,iindexer}.{cc,h}; remove standard_includes.*; use last_write_time
2019-10-23 21:56:51 -07:00
Amos Bird
38eccf79ec
using SIGSTOP (avoid interactive signal blocking) ( #2 )
2019-10-23 21:56:51 -07:00
Fangrui Song
ebaf168e16
Remove variant and clean up
2019-10-23 21:56:51 -07:00
Fangrui Song
12ad568159
Update loguru
2019-10-23 21:56:51 -07:00
Fangrui Song
79df82d4a1
MessagePack -> custom binary format
2019-10-23 21:56:51 -07:00
Fangrui Song
73bd987b1a
Add caseSensitivity to config->{completion,workspaceSymbol}
2019-10-23 21:56:51 -07:00
Fangrui Song
e522ce8179
Backport recent update of completion
2019-10-23 21:56:51 -07:00
Fangrui Song
43d1ec144c
Catch filesystem_error
2019-10-23 21:56:51 -07:00
Fangrui Song
662933e64c
Simplify indexer and query
2019-10-23 21:56:51 -07:00
Fangrui Song
9ed024f5cc
Simplify lsp.h and fix qual_name_offset when SetVarDetail is called on an existing variable
2019-10-23 21:56:51 -07:00
Fangrui Song
cdc7544471
Better definition/references on #include lines
2019-10-23 21:56:50 -07:00
Fangrui Song
5fb88749a9
Simplify Position & Range; prettify Maybe; remove file_contents.{h,cc}
2019-10-23 21:56:50 -07:00
Fangrui Song
a632f97a2d
Remove import_manager.cc
2019-10-23 21:56:50 -07:00
Fangrui Song
b872faa160
Simplify
2019-10-23 21:56:50 -07:00
Fangrui Song
3fbfb99e1b
Use clang_File_tryGetRealPathName
2019-10-23 21:56:50 -07:00
Fangrui Song
a52d56a453
Add qual_name_offset to Index* structs; improve workspace/symbol and documentSymbol
2019-10-23 21:56:50 -07:00
Fangrui Song
2035a24c74
Set typeDefinitionProvider
2019-10-23 21:56:50 -07:00
Fangrui Song
96bba583c9
Remove unused fs code.
2019-10-23 21:56:50 -07:00
Fangrui Song
fdb562bb42
Use global config.
2019-10-23 21:56:50 -07:00
Fangrui Song
062b1ad0fd
Simplify optional.
2019-10-23 21:56:50 -07:00
Fangrui Song
38cc501a8a
Fuzzy
2019-10-23 21:56:50 -07:00
Fangrui Song
daf7a41278
.
2019-10-23 21:56:50 -07:00
Fangrui Song
c96631d1ee
.
2019-10-23 21:56:50 -07:00
Fangrui Song
a58a38c32d
.
2019-10-23 21:56:50 -07:00
Fangrui Song
eb7d0951ce
.
2019-10-23 21:56:50 -07:00
Fangrui Song
22a7bcb47f
.
2019-10-23 21:56:50 -07:00
Fangrui Song
ce33cc86d4
.
2019-10-23 21:56:50 -07:00
Fangrui Song
e1398ff319
.
2019-10-23 21:56:50 -07:00
Fangrui Song
f7872d143d
.
2019-10-23 21:56:50 -07:00
Fangrui Song
b839389f77
Resurrection of ccls
2019-10-23 21:56:50 -07:00
Fangrui Song
39dfe052f5
Better textDocument/definition heuristic for T::name style dependent names
2019-10-23 21:56:50 -07:00
Fangrui Song
6c95649904
Improve fuzzy matching heuristics.
2019-10-23 21:56:50 -07:00
Chao Shen
4a95eda9d7
Fix lost index update.
2019-10-23 21:56:50 -07:00
Pavel Davydov
fdba724f07
Add comment with short issue description. ( #545 )
2019-10-23 21:56:50 -07:00
Pavel Davydov
a6e62aa28c
Blacklist '-include' and '-include-pch' flags. ( #545 )
2019-10-23 21:56:50 -07:00
Maxim Kot
b68b063abd
UB fixed.
...
Forgotten return was removed.
2019-10-23 21:56:50 -07:00
Jacob Dufault
47aa9b8e23
Work on e2e tests
2019-10-23 21:56:50 -07:00
Jacob Dufault
98090c543d
Minor type cleanup
2019-10-23 21:56:50 -07:00
Chao Shen
eefaad79f2
Preprocessor keyword completion.
2019-10-23 21:56:50 -07:00
Patrick Reisert
9ba87673b8
Ignore cl's -showIncludes
2019-10-23 21:56:50 -07:00
Chao Shen
8da0172955
Fix missing include completions.
2019-10-23 21:56:50 -07:00
Jacob Dufault
2fc731c856
ipc.h -> method.h, rename some types
2019-10-23 21:56:50 -07:00
Jacob Dufault
e37a6c814b
Remove global list of message ids.
...
Also do some naming cleanup. Also remove xmacros.
2019-10-23 21:56:50 -07:00
Jacob Dufault
ee87d6cb97
Fix some warnings due to missing returns
2019-10-23 21:56:50 -07:00
Boris Staletic
39fbd1a2d5
Make overridden flags persistent
...
didOpen can override flags from compilation database.
didSave was able to reset the flags back.
This makes sure that the overridden flags persist.
2019-10-23 21:56:50 -07:00
Jacob Dufault
38fbe89b4c
Don't use an IterationLoop for main indexer.
...
This causes the indexer to exit.
2019-10-23 21:56:50 -07:00
Elliot Berman
23bf95b5e3
Flush sessions on textDocument/didOpen
2019-10-23 21:56:50 -07:00
Elliot Berman
702eec9f2a
Undo changes to diagnostics engine and import pipeline
...
They didn't seem necessary
2019-10-23 21:56:50 -07:00
Elliot Berman
c636eae680
Flush all clang-complete sessions on workspace/didChangeConfiguration
2019-10-23 21:56:50 -07:00
Jacob Dufault
1fd0a1be94
Reduce queue lengths by running index updates as iteration loop
...
A single translation unit can create many index updates, so give
IndexMain_DoCreateIndexUpdate a chance to run a few times. This should also be
faster as it is more icache friendly.
2019-10-23 21:56:50 -07:00
Jacob Dufault
ef59e59f5b
Ensure IndexMergeIndexUpdates always returns a bool
2019-10-23 21:56:50 -07:00
Boris Staletic
bf011fef71
Conditionally allow reindex on didChange
2019-10-23 21:56:50 -07:00
Jacob Dufault
4e76cdaaae
Try to prevent long queue lengths.
2019-10-23 21:56:50 -07:00
Jacob Dufault
db7e25c542
Reformat
2019-10-23 21:56:50 -07:00
Jacob Dufault
af3c09d00d
Restore include completion on #
2019-10-23 21:56:50 -07:00
Jacob Dufault
0b1cc52c58
Fix crash when dynamically adding completion item
2019-10-23 21:56:50 -07:00
Jacob Dufault
259d30ef8a
Don't use std::mismatch. Unit tests crash on Windows.
2019-10-23 21:56:50 -07:00
Jacob Dufault
997bcdf05a
Restore call to GetPlatformClangArguments
2019-10-23 21:56:50 -07:00
Jacob Dufault
fb304d5c95
Restore platform arguments
2019-10-23 21:56:50 -07:00
Fangrui Song
90329e5453
Simplify ComputeGuessScore
2019-10-23 21:56:50 -07:00
Boris Staletic
193d42ea78
Make CL mode detection fool-proof ( #528 )
2019-10-23 21:56:50 -07:00
Fangrui Song
2d1c990f1a
Don't include system header files for #include "
(#i"
) completion
2019-10-23 21:56:50 -07:00
Fangrui Song
ad88f707f7
Simplify and optimize completion.
2019-10-23 21:56:50 -07:00
Fangrui Song
02542b1e69
Optimize FuzzyMatcher and add tests.
2019-10-23 21:56:50 -07:00
Boris Staletic
13cccda781
Add -idirafter ot kPathArgs ( #529 )
2019-10-23 21:56:50 -07:00
Fangrui Song
11293722cc
textDocument/didOpen: add args to override project entry
2019-10-23 21:56:50 -07:00
Fangrui Song
d571fed293
Fix skipped region in clang 6.0.0; add repology badge; remove -latomic
2019-10-23 21:56:50 -07:00
Fangrui Song
aa2910208f
Fix g++ build
2019-10-23 21:56:50 -07:00
Fangrui Song
b2b5e57761
Variant of clangd fuzzy matcher
2019-10-23 21:55:32 -07:00
Rian Neogi
bcdb8690f0
Remove unneeded code
2018-03-15 11:53:27 -07:00
Rian Neogi
26584cac81
Fix completion on semicolon
2018-03-15 11:53:27 -07:00
Fangrui Song
6cd339059f
Fix #518
2018-03-14 21:12:55 -07:00
Fangrui Song
cebd6bb7c7
Remove platform arguments, update Travis & AppVeyor to use clang+llvm 6.0.0
...
Close #509
2018-03-13 17:39:06 -07:00
Fangrui Song
3a752a3c8f
Adjust order of GetPlatformClangArguments
2018-03-11 22:13:17 -07:00
Fangrui Song
89d45fb48a
Reload .cquery compile_commands.json upon workspace/didChangeConfiguration. fix #378
...
And backport https://github.com/waf-project/waf/pull/2127
2018-03-11 15:15:15 -07:00
DaanDeMeyer
9b3ec699e0
fix windows relative path include dirs ( #501 )
...
* Only do path normalization on clang-cl + clang-format
* Improve clang-cl checking + add /I to args that could be followed by a relative path + add two test cases
2018-03-11 10:08:41 -07:00
Fangrui Song
2a7117e6e5
Fix hierarchical .cquery
2018-03-10 19:51:08 -08:00
Fangrui Song
640f548e7c
Use std::index_sequence and std::make_unique
2018-03-10 15:57:02 -08:00
Fangrui Song
3995a9d5b8
Add initialization options highlight.{blacklist,whitelist}
2018-03-09 00:23:32 -08:00
Fangrui Song
ce6b7363c6
Upgrade to --bundled-clang=6.0.0
2018-03-08 20:04:05 -08:00
Fangrui Song
f9f8429c74
Uniquify {func,type}.derived
2018-03-07 15:08:50 -08:00
Fangrui Song
478e542e8a
Move lsSymbolKind to lsp.h
2018-03-07 13:20:31 -08:00
Fangrui Song
15ec6036e7
Set parentKind of Func/Var from declarations if they have no definition
2018-03-07 00:56:47 -08:00
Fangrui Song
57f2c325f0
parentKind in semantic highlighting: SymbolKind -> lsSymbolKind
2018-03-07 00:34:20 -08:00
Fangrui Song
6815f1312f
Add semantic parent to textDocument/references
2018-03-06 20:05:32 -08:00
Fangrui Song
a1210db985
Add --log-file-append
2018-03-06 17:58:29 -08:00
Daan De Meyer
6b167e7773
remove unnecessary include
2018-03-06 13:15:37 -08:00
Daan De Meyer
46bc43acc4
Add unit test for IsWindowsAbsolutePath and remove explitic true/false checks (! instead)
2018-03-06 13:15:37 -08:00
Daan De Meyer
26e50e695d
Add unit test for IsWindowsAbsolutePath
2018-03-06 13:15:37 -08:00
Daan De Meyer
99904874ca
Fix libclang generic error on Windows
2018-03-06 13:15:37 -08:00
Fangrui Song
e5a904f9c7
Fix --test-unit
2018-03-05 20:46:45 -08:00
Fangrui Song
e6c4d32a6b
Add config->diagnostics.{blacklist,whitelist}
2018-03-05 19:03:39 -08:00
Fangrui Song
df55e79e4e
Add DiagnosticsEngine and add config->diagnostics.frequencyMs to allow reducing textDocument/publishDiagnostics frequency
2018-03-05 17:53:38 -08:00
Fangrui Song
df95cd4780
Fix #487 dead loop in hierarchical .cquery
2018-03-03 14:43:51 -08:00
Fangrui Song
68b7ed5852
Simplify clang_indexer.cc
2018-03-02 10:19:19 -08:00
Fangrui Song
d8b9acc790
[waf] Remove -Werror and reorder some libclang labels
2018-03-02 10:01:49 -08:00
Fangrui Song
8de44e3b95
Add workspace/executeCommand
2018-03-01 21:26:14 -08:00
Fangrui Song
8fcf60e3bc
Add textDocument/typeDefinition
2018-03-01 20:19:38 -08:00
Chao Shen
e03a3a8e7c
Add dummy compiler argument.
2018-03-01 19:12:59 -08:00
Fangrui Song
3e3bf885eb
Use X macros
2018-03-01 19:09:35 -08:00
Fangrui Song
0ba8f2a42c
Remove atomic_object.h and add workspace/didChangeConfiguration placeholder
2018-03-01 18:15:33 -08:00
Fangrui Song
56f57fc38e
Add missing GetCompletionKind branches
2018-02-28 21:49:44 -08:00
Fangrui Song
8e70a1078e
Use call sites for callHierarchy
2018-02-28 17:56:49 -08:00
Fangrui Song
1cc5b85ef4
Fix -Wunused-variable when CINDEX_VERSION >= 47
2018-02-28 08:35:06 -08:00
Jacob Dufault
ab508bb12e
Revert "[[noreturn]] on cquery_unreachable_internal"
...
This reverts commit 5db4314a5e3b3010bc5883e8d775e396164d7d85.
2018-02-27 23:23:07 -08:00
Jacob Dufault
d1fdf231c8
Make all call type default in $cquery/callHierarchy
2018-02-27 23:08:39 -08:00
Jacob Dufault
78fe0c7ebe
Better comment in project.cc
2018-02-27 23:08:23 -08:00
Jacob Dufault
c43b197b99
[[noreturn]] on cquery_unreachable_internal
2018-02-27 23:08:06 -08:00
Jacob Dufault
e44109aee9
Reorder some IPC members
2018-02-27 23:07:53 -08:00
Jacob Dufault
7a81a5dbc5
Better error message for issue #478
2018-02-27 23:07:40 -08:00
Fangrui Song
ba87714e92
Merge $cquery/*Hierarchy{Initial,Expand}
2018-02-27 22:25:16 -08:00
Fangrui Song
214eded2cb
Support listing local variables in memberHierarchy and better handling of locations for typedef; remove cquery_call_tree.cc
2018-02-26 21:32:58 -08:00
Fangrui Song
60c0267432
Var DetailedName
2018-02-26 18:29:37 -08:00
Fangrui Song
09dd20226f
Rename FuncDefDefinitionData::locals to vars, remove constants from EnumDecl's vars
2018-02-26 17:53:37 -08:00
Fangrui Song
7743480b13
Use clang_getTypedefDeclUnderlyingType and expand alias_of in memberHierarchy
2018-02-26 00:31:16 -08:00
Fangrui Song
eee785569f
memberHierarchy
2018-02-25 23:14:03 -08:00
Fangrui Song
42825d022b
memberHierarchy
2018-02-25 22:55:17 -08:00
Fangrui Song
c166f3bca8
Simplify hierarchies
2018-02-25 19:44:43 -08:00
Fangrui Song
95797be730
Rename *DefDefinitionData::{base,parents} to bases and add inheritanceHierarchy{Initial,Expand}
2018-02-25 18:52:30 -08:00
Fangrui Song
dc18f04759
Strip scope qualifiers of detailed_name in $cquery/memberHierarchy{Initial,Expand}
2018-02-25 17:03:24 -08:00
Fangrui Song
bfcab88090
memberHierarchy
2018-02-25 16:24:53 -08:00
Fangrui Song
8c32839362
$cquery/{call,member}Hierarchy{Initial,Expand} work
2018-02-25 16:13:29 -08:00
Fangrui Song
eda5782aa6
hierarchies
2018-02-25 15:39:27 -08:00
Fangrui Song
968c15a2ca
Add detailed_name to hierarchies
2018-02-25 15:24:51 -08:00
Fangrui Song
f84cb1c85f
Add field_name to $cquery/memberHierarchy{Initial,Expand} and untested call hierarchy
2018-02-25 14:53:57 -08:00
Fangrui Song
cd3da90152
Re-design $cquery/memberHierarchy{Initial,Expand}
2018-02-25 09:23:38 -08:00
Fangrui Song
8a427dfa9e
Add role to lsLocationEx
2018-02-24 21:47:51 -08:00
Fangrui Song
1469723c3c
Don't show references (e.g. there are references to classes in constructor positions) in textDocument/documentSymbol
2018-02-24 17:30:29 -08:00
Fangrui Song
b53c41408e
Support %c %cpp %clang in clang command line and remove -std=gnu11 -std=gnu++14 defaults
...
If you want to mix C/C++ source files in a `.cquery` project:
echo -e '%clang\n%cpp -std=gnu++14' > .cquery
2018-02-24 15:21:32 -08:00
Fangrui Song
62e6f91808
Don't include rapidjson in indexer.h
2018-02-23 18:30:06 -08:00
Fangrui Song
bee8bacefd
Speed up build
2018-02-23 18:24:54 -08:00
Fangrui Song
c68548a2ca
Remove <regex> from lex_utils.h and separate language_server_api.h
...
% time clang++ -fsyntax-only -std=c++11 a.cc
<iostream> => 0.35s
<regex> => 0.68s
2018-02-23 16:33:48 -08:00
Fangrui Song
411d49951d
Reduce structs in language_server_api.h and clarify query_utils.h
2018-02-23 15:57:11 -08:00
Fangrui Song
b98c9a4575
Remove UniqueAdd* and uniquify uses
after libclang callbacks.
...
This removes some duplication in `uses`.
2018-02-23 15:08:19 -08:00
Nathan Ridge
9f4b30ca8c
Fix semantic highlighting regressions from switch from ClangSymbolKind to lsSymbolKind ( fixes #469 )
2018-02-22 16:11:35 -08:00
Fangrui Song
d4c49730fd
Better :: lexing and fix ci
2018-02-22 15:52:49 -08:00
Fangrui Song
61b5ef4fa0
Reduce <iostream>; don't include rapidjson in language_server_api.h; add role to lsReferenceContext
2018-02-22 14:39:46 -08:00
Fangrui Song
d2bc737068
Semantic highlighting of macros
2018-02-22 09:43:53 -08:00
Fangrui Song
cfa0308ff6
Update tests
2018-02-22 08:54:05 -08:00
Fangrui Song
b9fcbddc6d
Use -working-directory=
2018-02-22 08:50:49 -08:00
scturtle
319cec6e0a
fix ci
2018-02-22 17:02:00 +08:00
Fangrui Song
892f2ebfc7
Deduplicate Query*; add local variables to outline but not in documentSymbol
2018-02-21 23:49:52 -08:00
Jacob Dufault
01fe19f280
Format code
2018-02-21 23:34:32 -08:00
Jacob Dufault
566b508b8e
Fix regressions in completion filtering. Also improve performance slightly.
...
If there was no filter then we would return all results - this caused huge delays for #include completion.
2018-02-21 23:30:35 -08:00
Jacob Dufault
fae959e0ee
Drop old completion requests.
...
Also increase xref limit.
2018-02-21 23:13:42 -08:00
Fangrui Song
e785d3f477
Keep a list of QueryType
2018-02-21 23:02:28 -08:00
Fangrui Song
702cdbe9bb
Group initialization options and rename $cquery/typeHierarchyTree to $cquery/inheritanceHierarchy
2018-02-21 21:57:15 -08:00
Fangrui Song
20d1636024
Support clang-cl and cl.exe
2018-02-21 00:24:34 -08:00
Fangrui Song
1a4da727da
Index namespace alias and MSVC __interface; add --enable-assert to waf; add lexical container to xref requests
2018-02-20 22:13:58 -08:00
Fangrui Song
909c2e247a
Simplify query_utils
2018-02-20 18:30:58 -08:00
Fangrui Song
65ba98c3f8
Add Config::maxXrefResults and improve textDocument/definition
...
-std=c++11 => -std=c++14 for generic lambda
2018-02-20 16:19:26 -08:00
Fangrui Song
40ab5900de
Add TypeDefDefinitionData::declarations
...
Constructors and destructors are also included in declarations. But this is not necessarily bad, as textDocument/definition on class spelling names can jump to constructors as well as declarations.
2018-02-20 14:52:32 -08:00
Fangrui Song
9f3e0ce0dc
Improve finding definition/declaration and work around #463
2018-02-20 12:46:52 -08:00
Fangrui Song
40233104a6
Fix GCC __wur
2018-02-19 19:06:48 -08:00
Fangrui Song
3f4b727b4b
Remove -xc -xc++; add -std=gnu11 -std=gnu++14 only in .cquery mode and when --driver-mode is unspecified
2018-02-19 18:23:30 -08:00
Fangrui Song
e83fce65c2
Add loose mode in project.cc
2018-02-19 17:19:50 -08:00
Fangrui Song
f9d7361953
Add Config::compilationDatabaseCommand
...
If specified, this is an external command that provides the JSON compilation database, instead of compile_commands.json
2018-02-19 16:20:02 -08:00
Fangrui Song
d33bf50181
Order SymbolRef by size first, Role::Definition second
2018-02-18 19:46:22 -08:00
Fangrui Song
5164c4b2f6
Fix GetCallersForAllBaseFunctions found by romix
2018-02-18 19:08:04 -08:00
Fangrui Song
488f6cc962
Add lsSymbolKind::StaticMethod (extension) and set parentKind
2018-02-18 19:01:22 -08:00
Fangrui Song
9217393a78
Add semantic highlighting test file
...
Don't mark destructors as type references.
2018-02-18 14:50:11 -08:00
Fangrui Song
bfd4edf177
Remove local variables from documentSymbol
2018-02-18 12:07:40 -08:00
Fangrui Song
58d6547411
Remove ClangSymbolKind in favor of lsSymbolKind
2018-02-18 11:43:28 -08:00
Fangrui Song
f3134d564c
Simplify Index* Query*
2018-02-18 10:43:27 -08:00
Patil Arpith
afdde4d59f
Making completion_request_ ThreadedQueue from AtomicObject ( #459 )
2018-02-18 09:15:39 -08:00
Boris Staletic
be4d37dac3
Fix integer sign comparison
2018-02-18 09:10:27 -08:00
Fangrui Song
015195036c
Maintain a list of Def in Query{Func,Var}::Def
2018-02-18 00:42:04 -08:00
Fangrui Song
0f03146daa
Change optional<...> Query{Func,Type}::Def to forward_list
2018-02-17 23:24:09 -08:00
Fangrui Song
cfdb6bf422
Change optional<...> QueryVar::Def to forward_list
...
Related to #403
2018-02-17 22:09:03 -08:00
Fangrui Song
7e45983d6d
Don't store -fsyntax-only in compilation entries
...
There is a FIXME about the usage of -fsyntax-only in clang::createInvocationFromCommandLine
2018-02-14 23:02:37 -08:00
Fangrui Song
5bbd3f4a29
Add $cquery/fileInfo
2018-02-14 22:47:55 -08:00
Fangrui Song
afe86ef146
Use def.spell for semantic parent and def.extent for lexical parent
...
Use language identifier in the spec
Remove unreliable Boltzmann distribution
2018-02-14 21:54:57 -08:00
Jacob Dufault
3d3b5dfeb3
Objective-c test failures should no longer bring down CI
2018-02-13 23:30:11 -08:00
Fangrui Song
9fddd5173e
Fix #452
2018-02-13 22:24:36 -08:00
Jacob Dufault
aba38a9da1
Ask user for relevant diagnostics when clang translation unit creation fails.
...
Closes issue #450 .
2018-02-13 21:23:35 -08:00
Jacob Dufault
71a55ce46b
Fix querydb corruption/invalid references accumulating over time.
...
Hopefully this catches all of the issues. We will see in time.
This resolves issue #443
2018-02-13 21:13:59 -08:00
Fangrui Song
0c4d82667f
Clean up some -Wcovered-switch-default default labels
2018-02-13 13:03:31 -08:00
Fangrui Song
a1e1d115bf
Simplify GetDefinitionSpellingOfSymbol
2018-02-13 12:15:31 -08:00
Fangrui Song
273b670c0d
Jump to the closest symbol and add more lsSymbolKind constants
2018-02-13 12:00:43 -08:00
Jacob Dufault
2fab426369
Optimize textDocument/definition for comments
2018-02-13 10:24:43 -08:00
Jacob Dufault
aae6f456de
Fix crash in ClangCursor::get_arguments
2018-02-13 10:23:58 -08:00
Fangrui Song
72e654ffed
Fix default -resource-dir when clang -print-resource-dir contains ..
...
Also makes textDocument/definition in comments takes scope resolution
into account, and use detailed names (for Func, without parameters) for workspace/symbol
2018-02-12 23:54:50 -08:00
Fangrui Song
10437aa642
Disable variable PrettyPrint #if CINDEX_VERSION >= 47 and allow trunk libclang in tests
2018-02-12 19:15:39 -08:00
Fangrui Song
ef5db9b3fe
Move symbol related structs to symbol.h and add kind/role to textDocument/documentHighlight
2018-02-12 17:15:19 -08:00
Fangrui Song
de1e350c59
Role : uint8_t -> uint16_t; Add Read,Write to Role (#if CINDEX_VERSION >= 48)
...
Fix textDocument/documentSymbol
2018-02-12 10:15:43 -08:00
Fangrui Song
8a939389d8
Add fuzzy_match.h and let textDocument/definition search for the identifier at point (e.g. in comments)
2018-02-12 08:09:18 -08:00
Fangrui Song
afd38cbce9
Add Id<QueryFile> file; to Use and simplify query.cc
2018-02-11 20:43:54 -08:00
Fangrui Song
2d6fd4e240
Add UseWithFileId to work around textDocument/definition targets that reside in unnamed namespaces
2018-02-11 18:09:28 -08:00
Jacob Dufault
a90dc25c5a
Add failing test for issue #443
2018-02-11 17:15:56 -08:00
Jacob Dufault
699cf4b506
Fix IndexUpdate::ToString
2018-02-11 17:15:08 -08:00
Jacob Dufault
886f6f4a2c
Show doctest help if requested.
2018-02-11 17:14:45 -08:00
Jacob Dufault
35c407b2ac
Don't parse version for json if there is no expected version.
2018-02-11 17:14:27 -08:00
Jacob Dufault
1d98797f26
Remove QueryDb_Handle
...
Code is harder to read and it doesn't belong in import_pipeline.cc.
2018-02-11 14:31:24 -08:00
Jacob Dufault
95872d36fd
Remove some unused declarations
2018-02-11 14:17:03 -08:00
Jacob Dufault
079adea8ee
NTString -> nt_string
2018-02-11 14:08:05 -08:00
Jacob Dufault
593ecd8f53
Rename Maybe::has_value to Maybe::HasValue to follow naming conventions
2018-02-11 13:56:34 -08:00
Jacob Dufault
95f6460e6e
HasValue -> HasValueForMaybe_
2018-02-11 13:49:44 -08:00
Jacob Dufault
b71cf25186
Query GetFileId returns Maybe<QueryFileId>
2018-02-11 13:42:48 -08:00
Fangrui Song
aee79b3617
variable_type -> type; remove parent_{id,kind} (they should be inferred from Def::spell; clean up SymbolIdx, Reference, SymbolRef
2018-02-11 10:28:26 -08:00
Fangrui Song
0f8734c416
Make NTString nullable
2018-02-11 09:12:22 -08:00
Fangrui Song
68c5c317f0
Fix build on MSVC
...
WIP $cquery/random
2018-02-11 01:17:03 -08:00
Fangrui Song
8ab45cb43d
std::string {hover,comments} -> NTString (null-terminated string)
...
Typically, sizeof(std::string) = 32, sizeof(NTString) = 8
hover and comments are usually empty and thus wasteful to spend 24*2 bytes for them
2018-02-10 22:53:35 -08:00
Fangrui Song
e019968f51
Add lexical parent to Func
2018-02-10 20:30:27 -08:00
Fangrui Song
9a6cbafa04
Add lexical parent to Type/Var and definition_spelling->spell, definition_extent->extent
2018-02-10 20:23:46 -08:00
Fangrui Song
3ba9209eea
Add config->extension.referenceContainer
2018-02-10 18:34:34 -08:00
Manny Schneck
d79a7a3fa1
Use MAKE_ENUM_HASHABLE to hash SymbolKind
2018-02-11 10:15:28 +08:00
Fangrui Song
420e84329b
Derive SymbolRef,Use from Reference and add lexical container to func/var/type uses
2018-02-10 17:33:56 -08:00
scturtle
a50bff0b24
Make gcc happy.
2018-02-10 19:50:39 +08:00
Fangrui Song
bd4482df5e
GetDefinitionSpellingOfSymbol: optional -> Maybe
2018-02-10 00:19:17 -08:00
Fangrui Song
749ecf0faa
Add {Index,Query}Family to simplify template parameters
2018-02-10 00:06:45 -08:00
Fangrui Song
e7c90b62b5
$cquery/base for virtual void f() = 0
2018-02-09 23:12:34 -08:00
scturtle
1342522f2a
Make CI happy.
2018-02-10 12:43:48 +08:00
Fangrui Song
c28426bbb4
Remove QueryLocation and clean up
2018-02-09 19:13:50 -08:00
Fangrui Song
50cf05763b
Query* structs: QueryLocation -> Reference
2018-02-09 17:50:47 -08:00
Fangrui Song
aa125e34f3
Work around SIGSEGV and simplify SymbolIdx
2018-02-09 17:05:17 -08:00
Fangrui Song
95515643d8
Remove ToSymbol
2018-02-09 15:39:55 -08:00
Fangrui Song
c4bd7ef44b
Rename Reference members
2018-02-09 14:12:35 -08:00
Chao Shen
c5f08c5eb8
Fix a bunch of stuffs in completion.
2018-02-09 20:51:59 +08:00
Fangrui Song
a131ccdcb4
Remove ToQueryLocation
2018-02-08 23:43:18 -08:00
Fangrui Song
67e8132dbe
struct QueryFuncRef : Reference {};
2018-02-08 23:10:54 -08:00
Fangrui Song
4bfb5a3586
struct IndexFuncRef : Reference {};
2018-02-08 22:06:09 -08:00
Fangrui Song
82b429bfbc
QueryLocation -> Reference
2018-02-08 21:26:34 -08:00
Fangrui Song
2d255da07b
{Index,Query}Type::uses: Range/QueryLocation -> Reference
...
And add serialization for Reference
2018-02-08 18:26:09 -08:00
Jacob Dufault
5f85867f88
Scan root directory for includes
2018-02-08 15:27:53 -08:00
Fangrui Song
48a6f836ca
Fix SymbolRole serialization and make it hashable
2018-02-08 12:24:48 -08:00
Fangrui Song
715fece4dd
QueryLocation and QueryRef
2018-02-08 10:15:55 -08:00
scturtle
be1ed58fc5
Reuse isIncomplete.
...
Add -fno-limit-debug-info for debugging.
2018-02-09 00:55:39 +08:00
Fangrui Song
dbdab02ff4
Change is_implicit to role in {Index,Query}FuncRef
...
Add `FileId file` to *DefDefinitionData::Def
2018-02-07 23:27:35 -08:00
Fangrui Song
10c2843846
Add IndexLocation and add role to QueryLocation
...
IndexFuncRef should be deprecated in favor of IndexLocation
2018-02-07 19:10:39 -08:00
Fangrui Song
9b0256355e
Address ODR violation spot by @Riatre and work around .o .a in compile_commands.json
2018-02-07 10:27:30 -08:00
Chao Shen
8bee5c6ccf
Disable limiting completion result.
...
Because vscode cache the include completion results.
But for emacs, the json is too large to load.
TODO Make some fields optional.
2018-02-08 00:28:35 +08:00
scturtle
2e6d596a5a
Speedup sorting and limit number of completion results.
2018-02-07 16:15:29 +08:00
Fangrui Song
e76a336f19
Remove --debug in favor of LIBCLANG_DISABLE_CRASH_RECOVERY=1
...
ci/before_deploy.sh: Use the latest libclang.so
2018-02-07 00:00:04 -08:00
Fangrui Song
9e730aacd4
Make before_deploy.sh work on FreeBSD
2018-02-06 22:46:05 -08:00
Fangrui Song
e440a7c52f
Convert some copy constructors to move constructors in query.cc
2018-02-06 21:45:58 -08:00
Fangrui Song
55c7519e93
Move ImportOrUpdate and header cleanup
2018-02-06 21:27:07 -08:00
Fangrui Song
0016d214c3
Convert copy constructor to move constructors piecemeal
...
If I replace all the important constructors used in query.cc, there will be a weird issue that strings following "Applying index update for " are empty.
2018-02-06 20:54:17 -08:00
Jacob Dufault
0cfb5391d1
Add --record in favor of --log-stdin-stdout-to-stderr.
...
This should be more useful and can hopefully be adapted to writing tests.
2018-02-06 20:27:35 -08:00
Peter Elmers
47a8f20b20
Match directory before looking at included files.
2018-02-06 15:05:30 -08:00
Chao Shen
1e3815db2d
Fix include completion with filterText.
...
Fix #423
2018-02-06 16:14:05 +08:00
Fangrui Song
1a82f1f113
We may should represent Query{Func,Type,Var} as a bag of definitions and references
2018-02-05 10:16:43 -08:00
Fangrui Song
cd96cb9570
threaded_queue: queue -> deque
...
IndexMergeIndexUpdates: use TryPopBack() and see
2018-02-04 22:15:48 -08:00
Fangrui Song
3839d1e5ab
Decouple QueryDb_ImportMain
2018-02-04 21:22:21 -08:00
Fangrui Song
a8fb2264a9
Reflect IndexFuncRef
2018-02-04 17:49:00 -08:00
Chao Shen
093dbac30c
Fix compilation.
2018-02-05 09:34:39 +08:00
Fangrui Song
217d238c78
Use clang_getCursorPrettyPrinted if CINDEX_VERSION >= 47
...
Closes #366
2018-02-04 15:23:23 -08:00
Fangrui Song
1349cbfde3
Simplify EachWithGen
2018-02-04 13:43:29 -08:00
Fangrui Song
d573a68130
Simplify operator==
2018-02-04 10:09:58 -08:00
Guillaume Papin
65d7edd9b9
refactor CompareLsCompletionItem ( #412 )
...
Since not everything is a reference,
std::make_tuple() seems more appropriate than std::tie().
For heavy types, std::cref() can be used to preserve the reference.
2018-02-04 09:31:23 -08:00
Guillaume Papin
24702a25b0
add detailedLabel completion style
...
Some completion UI, such as Emacs' completion-at-point and company-lsp,
display completion item label and detail side by side.
This does not look right, when you see things like:
"foo" "int foo()"
"bar" "void bar(int i = 0)"
When this option is enabled, the completion item label is very detailed,
it shows the full signature of the candidate.
The detail just contains the completion item parent context.
Also, in this mode, functions with default arguments,
generates one more item per default argument
so that the right function call can be selected.
That is, you get something like:
"int foo()" "Foo"
"void bar()" "Foo"
"void bar(int i = 0)" "Foo"
Be wary, this is quickly quite verbose,
items can end up truncated by the UIs.
2018-02-03 20:56:14 -08:00
Fangrui Song
7a1464cadb
Fix #410
2018-02-03 20:37:39 -08:00
Fangrui Song
985dec101d
Generation
2018-02-03 19:51:30 -08:00
Fangrui Song
0a721ff247
Simplify query.h
2018-02-03 18:16:30 -08:00
scturtle
15dd552610
Complex include completion.
2018-02-04 09:45:58 +08:00
Chao Shen
e16753d261
Improve completion.
2018-02-04 09:45:58 +08:00
Fangrui Song
e5128d3db9
Wrap Query* references with WithGen
2018-02-03 17:44:20 -08:00
Fangrui Song
3d6d000297
Add Generation gen;
to Query{Func,Type,Var} and corresponding ToQueryLocation
2018-02-03 14:52:26 -08:00
Riatre Foo
54c587a700
Look for .cquery in any directory above the source file in the hierarchy. ( #409 )
...
* Look for .cquery in any directory above the source file in the hierarchy.
Currently cquery only reads compiler arguments (.cquery) from project
root. Under some circumstances (e.g. remote compiling), generating a
compilation database with correct path in it is non-trivial, and
allowing per directory compile arguments usually helps.
* unused var buf
2018-02-03 13:16:38 -08:00
Fangrui Song
6933870962
Change symbol id from size_t to RawId (uint32_t currently)
2018-02-03 10:35:17 -08:00
Riatre Foo
b145243a64
Fix #393 again. ( #402 )
...
28cd33e actually changed the behaviour of GetFilesInFolderHelper.
2018-02-02 10:51:14 -08:00
Fangrui Song
12e41c609e
Fix #393
2018-02-01 23:35:34 -08:00
Fangrui Song
e42f6b6191
optional<...> GetQuery*IdFromUsr -> Maybe
2018-02-01 23:17:34 -08:00
Fangrui Song
ae999f9c92
size_t Query*::symbol_idx -> Maybe<Id<void>>
2018-02-01 22:52:03 -08:00
Fangrui Song
3c6f3f661f
Use Maybe<Id<T>> for {Func,Type,Var}DefDefinitionData
...
sizeof(db->funcs[0].def) 224 (-24)
sizeof(db->types[0].def) 248 (-24)
sizeof(db->vars[0].def) 160 (-24)
2018-02-01 22:31:43 -08:00
Fangrui Song
392cd79d04
Add Maybe<T> and change definition_{spelling,extent} from optional to Maybe
...
sizeof(db->funcs[0].def) decreases from 248 to 232
sizeof(db->types[0].def) decreases from 272 to 256
sizeof(db->vars[0].def) decreases from 184 to 168
2018-02-01 21:39:23 -08:00
Nathan Ridge
74f9be1d6f
Use symbol kind 'Parameter' for template parameters
...
Clients can distinguish between function and template parameters based
on storage class.
2018-02-01 20:07:11 -08:00
Fangrui Song
ce6f1c7294
QueryDatabase::{detailed_names,short_names} -> GetSymbol{DetailedName,ShortName}
2018-02-01 18:15:22 -08:00
Fangrui Song
2fb85732c0
Add RemoveSymbol
2018-02-01 17:25:06 -08:00
Fangrui Song
642975ea17
Reflect string_view and fix workspace/symbol
2018-02-01 13:48:41 -08:00
Fangrui Song
0d715e7bcf
Handle int8_t int16_t uint8_t uint16_t enum constants
...
Clean up clang_complete
2018-02-01 12:21:58 -08:00
Chao Shen
5b6945d909
Remove last CR.
2018-02-01 17:12:36 +08:00
Fangrui Song
490f52205f
Clean serializer
2018-02-01 00:39:31 -08:00
Chao Shen
57ea5f7cb9
Check the function name appearance before publish semantic highlight.
2018-02-01 16:27:31 +08:00
Jacob Dufault
e0e3a39d5d
Fix clang 3.5 compile error
2018-01-31 21:49:56 -08:00
Jacob Dufault
c98d53cfe2
Indexer now has access to |config|
2018-01-31 21:48:49 -08:00
Fangrui Song
e259bb91d3
Use string_view for lsSymbolInformation
2018-01-31 21:40:40 -08:00
Fangrui Song
6d6c1639d0
Type-dependent member access expressions
2018-01-31 21:23:00 -08:00
Jacob Dufault
b02c92e335
Reduce file reads in import_pipeline
2018-01-31 21:20:38 -08:00
Jacob Dufault
301d295f79
Remove std::experimental uses
2018-01-31 21:18:32 -08:00
Jacob Dufault
a2c1cb4a83
Enable make* indexing by default
2018-01-31 20:21:16 -08:00
Fangrui Song
8108de0cfa
Change short_names/detailed_names from const std::string& to std::string_view
2018-01-31 19:53:50 -08:00
Fangrui Song
c33aa113db
Use short_name for tests but short_name_{offset,size} for lang server
2018-01-31 17:22:30 -08:00
Fangrui Song
9944617df6
Fix #385
2018-01-31 16:48:26 -08:00
Fangrui Song
768f4ecb6e
Enable "Make" hack only if config->index.make_unique is true.
2018-01-31 11:10:20 -08:00
Fangrui Song
871ae34a1b
Hotfix of stale file contents in 186898
2018-01-31 08:42:25 -08:00
Fangrui Song
3e16055b31
Change some API const std::string& -> std::string_view
2018-01-31 00:35:04 -08:00
Fangrui Song
4c895bef0b
Make optional<string> {hover,comments} non-optional
2018-01-30 23:48:34 -08:00
Fangrui Song
77dca1936b
Change TypeDefDefinition::short_name from string to string_view
2018-01-30 23:01:59 -08:00
Fangrui Song
93269ecfd4
Change std::string FuncDefDefinition::short_name to ShortName()
2018-01-30 22:40:02 -08:00
Fangrui Song
41f87887bb
Change std::string VarDefDefinition::short_name to ShortName()
2018-01-30 22:04:55 -08:00
scturtle
699d2f3655
Fix completion of headers.
2018-01-31 09:59:51 +08:00
Fangrui Song
5d88eb959d
Remove index.builtinTypes and fix doc
2018-01-30 09:16:20 -08:00
Riatre Foo
ab2a836d57
Remove unused variable ex
in initialize.cc ( #376 )
2018-01-30 09:03:46 -08:00
Fangrui Song
c8605dc4a9
Group source files outside of the project by a cache sub-directory
2018-01-29 23:53:32 -08:00
Jacob Dufault
fe3b9c4a8a
Revert "Fix completion of headers."
...
This reverts commit ce0aab3afa4b7d80d46c901d1bb8234ac18fa70b.
2018-01-29 21:52:38 -08:00
Jacob Dufault
f6a2a55209
Import pipeline improvements
...
- Cache manager is created by request
- Index is always associated with its contents
- Reduced frequently of file reads
2018-01-29 21:34:36 -08:00
Jacob Dufault
a8b68d21d7
Fix potential crash
2018-01-29 21:34:36 -08:00
scturtle
e145f77996
Fix completion of headers.
2018-01-30 13:11:56 +08:00
Fangrui Song
5bd466ab17
Fix #372
2018-01-29 19:08:19 -08:00
Jacob Dufault
0eb7d415d7
usr_to_file uses new NormalizedPath type
2018-01-29 16:56:00 -08:00
Jacob Dufault
7579d71b85
Simplify MAKE_REFLECT_TYPE_PROXY
2018-01-29 16:35:01 -08:00
Jacob Dufault
a392301be3
Format
2018-01-29 16:27:43 -08:00
Jacob Dufault
233a108814
Add docs to config.h, remove enableCacheRead/enableCacheWrite.
2018-01-29 16:14:23 -08:00
Jacob Dufault
55338e7481
Simplify, readd --wait-for-input
2018-01-29 15:43:22 -08:00
Fangrui Song
09d7da2893
Don't emit semantic highlight for operators or lambda ( #369 )
...
Fixes #368
2018-01-29 09:28:17 -08:00
Fangrui Song
795dfc670c
Update tests after specialization handling
2018-01-28 23:40:57 -08:00