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