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
Boris Staletic
be4d37dac3
Fix integer sign comparison
2018-02-18 09:10:27 -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
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
Fangrui Song
9fddd5173e
Fix #452
2018-02-13 22:24:36 -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
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
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
Jacob Dufault
593ecd8f53
Rename Maybe::has_value to Maybe::HasValue to follow naming conventions
2018-02-11 13:56:34 -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
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
Fangrui Song
bd4482df5e
GetDefinitionSpellingOfSymbol: optional -> Maybe
2018-02-10 00:19:17 -08:00
Fangrui Song
e7c90b62b5
$cquery/base for virtual void f() = 0
2018-02-09 23:12:34 -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
c4bd7ef44b
Rename Reference members
2018-02-09 14:12:35 -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
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
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
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
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
1349cbfde3
Simplify EachWithGen
2018-02-04 13:43:29 -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
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
Fangrui Song
e42f6b6191
optional<...> GetQuery*IdFromUsr -> Maybe
2018-02-01 23:17:34 -08:00
Fangrui Song
ce6f1c7294
QueryDatabase::{detailed_names,short_names} -> GetSymbol{DetailedName,ShortName}
2018-02-01 18:15:22 -08:00
Fangrui Song
642975ea17
Reflect string_view and fix workspace/symbol
2018-02-01 13:48:41 -08:00
Jacob Dufault
c98d53cfe2
Indexer now has access to |config|
2018-01-31 21:48:49 -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
768f4ecb6e
Enable "Make" hack only if config->index.make_unique is true.
2018-01-31 11:10:20 -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
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
scturtle
e145f77996
Fix completion of headers.
2018-01-30 13:11:56 +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
Fangrui Song
16bf3158c5
Add SymbolRole to SymbolRef and fix $cquery/{base,derived} by ordering definitions before uses
2018-01-28 20:39:41 -08:00
Fangrui Song
fb3cd89b05
Move language_server_api.h structs to initialize.cc
2018-01-28 14:39:48 -08:00
Fangrui Song
640d72f85c
Check --init and remove --wait-for-input
2018-01-28 14:06:35 -08:00
Fangrui Song
1e7727f75a
Allow empty initializationOptions or cacheDirectory (which disables cache read/write)
2018-01-28 13:52:04 -08:00
Fangrui Song
80213e8a23
Complete with empty context
2018-01-28 13:26:34 -08:00
Fangrui Song
d605217c1a
matcher.cc: use std::regex_search instead of std::regex_match
...
Prototype of non-working `dependencies` parameter of $cquery/freshenIndex
2018-01-27 10:42:18 -08:00
Fangrui Song
d6003e1991
workspace/didChangeWatchedFiles
2018-01-26 23:17:49 -08:00
Fangrui Song
37809def7c
Add bool include_decl
parameter to GetUsesOfSymbol
...
Fixes #350
Function declarations/definitions are not counted if include_decl is
false.
We should do similar thing to Var and Type.
2018-01-26 17:31:50 -08:00
Fangrui Song
3ef0abec14
WIP DidChangeWatchedFiles
2018-01-25 23:04:07 -08:00
Jacob Dufault
d14f17212d
Do not show code lens on namespaces.
...
There are too many references for editors to handle well.
2018-01-25 11:22:55 -08:00
Jacob Dufault
61efdcc721
Better inline code lens location for functions
2018-01-24 19:15:18 -08:00
Fangrui Song
b4e1e4fd3a
Remove enableComments
, make index.comments
default to 2, and index builtin types
2018-01-23 22:56:13 -08:00
Fangrui Song
d4a4e15976
Store client capability snippetSupport into config
...
Rename filterAndSortCompletionResponse to completion.filterAndSort
Rename index.builtin_types to index.buitinTypes
2018-01-21 10:09:09 -08:00
Fangrui Song
bc28bfef45
Cleanup
2018-01-20 22:55:29 -08:00
Fangrui Song
6acea187c7
Add initialization option index.builtin_types for indexing builtin types
...
Also deprecate enableComments in favor of index.comments
Make $cquery/vars work on variables (by obtaining their types first).
This is currently the only way to list instances of builtin types.
2018-01-20 22:46:03 -08:00
Fangrui Song
8c6a87b3a3
Fix signatureHelp signature selection heuristic
2018-01-20 16:21:13 -08:00
Fangrui Song
c36eda70f9
Rename SubstringMatch to SubsequenceMatch and use it to pre-filter completion items
...
Fix #321
2018-01-20 13:15:43 -08:00
Fangrui Song
2e0f14bef8
Add whitelist/blacklist to $cquery/freshenIndex
2018-01-20 11:39:44 -08:00
Fangrui Song
273af8306f
Move GetQueryFileIdFromPath to unnamed namespace, make them inline and optional
2018-01-20 10:44:30 -08:00
Fangrui Song
c5bb14e86b
Use INVALID_ID instead of optional and clean up
2018-01-20 09:59:12 -08:00
khng300
427f7b79e3
Use GetQuery{Type,Func,Var}IdFromUsr for querying QueryDatabase::usr_to_{type,func_var} ( #315 )
...
* Use GetQuery{Type,Func,Var}IdFromUsr for querying usr_to_{type,func_var}
Instead of directly touching usr_to_{type,func_var}, use dedicated
methods to touch them for more abstraction around QueryDatabase.
* Use `Usr` as parameter for GetQueryVarIdFromUsr()
To maintain code consistency with other similar helpers.
2018-01-20 08:57:41 -08:00
scturtle
b8a3e089ce
Response on index error. ( #319 )
2018-01-19 23:56:49 -08:00
Fangrui Song
6c45663002
Support #include for textDocument/references
2018-01-19 21:11:03 -08:00
Fangrui Song
5c43bd9a09
Remove IpcMessage
2018-01-19 01:06:02 -08:00
Fangrui Song
58aa00e6c8
Switch to {Request,Notification}Message
2018-01-19 01:01:56 -08:00
Fangrui Song
0e2b2cfb0c
Switch to {Request,Notification}Message
2018-01-19 00:56:09 -08:00
Fangrui Song
148a8b3f20
Add {Request,Notification}Message
2018-01-19 00:48:08 -08:00
Fangrui Song
556f32ec1b
Throw std::invalid_argument for deserialization type error
2018-01-18 22:47:44 -08:00