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