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
Chao Shen
b0bf107f71
Add option to disable filtering and sorting completion response.
2018-01-18 19:32:09 -08:00
Fangrui Song
3c23ed8047
cquery_member_hierarchy.cc: Change uint64_t to size_t ( #304 )
2018-01-18 10:13:25 -08:00
Jacob Dufault
71ae137393
Add ScopedPerfTimer
2018-01-18 08:25:47 -08:00
Jacob Dufault
39b9991c8f
Fix MSVC compile
2018-01-18 00:09:13 -08:00
Fangrui Song
819f5198de
Add $cquery/memberHierarchy{Initial,Expand} to list member variables of a type
2018-01-17 23:51:19 -08:00
Jacob Dufault
8fef86c0f8
Remove ImportManager::HasActiveQuerydbImports.
...
ImportPipelineStatus::num_active_threads can be used instead.
2018-01-17 21:34:47 -08:00
Jacob Dufault
2ad7ac10ab
Fix include completion.
2018-01-15 02:07:01 -08:00
Fangrui Song
96a23bc573
Better shutdown
2018-01-14 22:53:51 -08:00
Fangrui Song
13728a0fae
Add is_end to Get{Buffer,Index}PosFrom{Index,Buffer}Pos to get better column alignment
2018-01-14 17:16:24 -08:00
Fangrui Song
2c4783c904
Rename Get{Buffer,Index}LineFrom{Index,Buffer}Line in preparation for column alignment.
2018-01-14 14:25:15 -08:00
Fangrui Song
54ac72115e
Change line/column to 0-based and only use 1-based when (de,)serialized to JSON
2018-01-14 11:54:23 -08:00
Fangrui Song
f78d87ded3
Unify {all,raw}_buffer_lines
...
Also remove GetBufferLineContentFromIndexLine
2018-01-14 11:06:07 -08:00
Fangrui Song
b81589f6ed
shutdown: id
2018-01-13 11:39:06 -08:00
Fangrui Song
14a213d407
Change std::string USR to uint64_t pseudorandom function (SipHash 64-bit)
2018-01-12 23:47:24 -08:00
Fangrui Song
feb0249350
Fix textDocument/didClose to use TextDocumentIdentifier
2018-01-12 18:59:25 -08:00
rianneogi
27dad9a277
Moved lines above
2018-01-12 09:36:17 -08:00
rianneogi
2f8d11e5ff
Always do completion on manual trigger.
2018-01-12 09:36:17 -08:00
rianneogi
a324178fcb
changed size()==0
to empty()
2018-01-12 09:36:17 -08:00
rianneogi
dc00d320ec
Fix autocompletion results on semicolon
2018-01-12 09:36:17 -08:00
Jacob Dufault
cc1fbada4b
Don't crash in completion if there is no working file.
2018-01-11 00:35:15 -08:00
Jacob Dufault
786ac0bc4f
Merge FileContents and FileContentsWithOffsets.
...
Also try to more aggressively load FileContents when indexing to increase reliability.
2018-01-10 21:16:46 -08:00
Jacob Dufault
54394ed868
Format
2018-01-10 18:43:01 -08:00
Fangrui Song
0e5e2a6ca5
Fix build
2018-01-10 00:21:55 -08:00
Fangrui Song
3e076b4111
workspace/didChangeWatchedFiles placeholder
2018-01-09 23:11:20 -08:00
Fangrui Song
503127e0da
Reflect std::variant and change lsRequestId to variant<monostate,double,string> ( #279 )
2018-01-09 22:34:58 -08:00
Fangrui Song
71ca687252
Change Config->enableComments from to int
...
"enableComments": 0 // don't index comments
"enableComments": 1 // index Doxygen comment markers
"enableComments": 2 // -fparse-all-comments
2018-01-09 00:46:37 -08:00
Fangrui Song
37152da0fc
Add std::monostate to represent null field and add Ipc::Shutdown
...
Fixes #265
// FIXME lsRequestId should be number | string | null (std::variant<std::monostate, double, string>
2018-01-09 00:23:00 -08:00
Fangrui Song
c0a9b7189f
Use --init='{"enableComments": true}' to index comments and display them on hover
2018-01-08 21:41:46 -08:00
Fangrui Song
11436c1f0d
Flatten msgpack by replacing pack_array() with pack()
...
msgpack::unpacker is not a complete streaming deserializer. It returns maps/arrays as a whole but does not allow us to step into individual elements. There is some memory overhead and it is also likely less efficient. By flattening maps, we also no longer need to track how many fields a struct has, which is less error-prone.
2018-01-07 20:52:16 -08:00
Jacob Dufault
06870d5b61
Do not show completion candidates for : or > by itself.
...
Fixes issue #258 .
2018-01-07 14:27:57 -08:00
Jacob Dufault
74c75ad0d1
Do not sort workspace symbols in vscode.
...
vscode assumes the order does not change.
2018-01-07 13:08:48 -08:00
Jacob Dufault
09d9d5eedc
Progress output improvements
...
- Don't emit so many progress messages
- Allow user to control how often progress is emitted
- Include number of active threads in progress
2018-01-07 13:08:48 -08:00
Jacob Dufault
7f6f63b702
Compute call location on client-side.
2018-01-07 13:08:48 -08:00
Fangrui Song
fe0313f0b5
Add a parameter (number of __VA_ARGS__) to REFLECT_MEMBER_START
...
rapidjson StartArray StartObject do not need the number of fields, but msgpack-c does.
2018-01-06 16:42:22 -08:00
Fangrui Song
02a457f65d
Make Reader/Writer abstract classes instead of type aliases of rapidjson classes
...
Added src/serializers/json.h (which includes rapidjson)
2018-01-06 14:47:43 -08:00
Jacob Dufault
0657de7ef9
Make exact workspace symbol search use detailed_name.
...
This enables lookup by typing fully qualified names, ie, myns::MyClass.
2018-01-05 10:06:15 -08:00
scturtle
66af432946
Fix completion order: Sort after cache.
2018-01-03 07:58:59 -08:00
Fangrui Song
86768b7d36
[formatting] textDocument/rangeFormatting
2017-12-31 20:03:43 -08:00
Fangrui Song
12ad0303be
[formatting] Add textDocument/rangeFormatting
2017-12-31 19:41:47 -08:00
Fangrui Song
f9aa0ef66d
[formatting] Refrain from std::make_unique until migration to C++14 or C++17
2017-12-31 15:56:02 -08:00
Fangrui Song
cd2f3c1e45
[formatting] Rename formattingOptions to options
...
LanguageClient-neovim `:call LanguageClient_formatting()` works now
2017-12-31 15:46:28 -08:00
Daniel Martín
f389d294b7
Protect formatting code inside USE_CLANG_CXX
2017-12-31 23:15:03 +01:00
Daniel Martín
05e9bf3966
Add missing includes
2017-12-31 13:30:34 +01:00
Daniel Martín
0e16899b81
Move formatting structs to text_document_formatting.cc
2017-12-31 13:30:34 +01:00
Daniel Martín
19341c18cd
Basic implementation of document formatting
...
Still some important TODOs to address:
- Improve the algorithm that converts between offsets and line/column
pairs. Right now it's extremely naive.
- Add proper support for a .clang-format file that specifies
the coding style.
2017-12-31 13:30:34 +01:00
Daniel Martín
abc2edf05f
Add structures to support document formatting
2017-12-31 13:24:58 +01:00
scturtle
4c2dff39ef
Response "being indexed" instead of "not found".
2017-12-30 19:39:10 -08:00
Chao Shen
829b2fe18c
Better order of the completion items.
2017-12-30 15:15:46 +08:00
Jacob Dufault
6048eb6237
Move LoadCachedFileContents into ICacheManager
2017-12-29 12:19:39 -06:00
Jacob Dufault
71591d7805
Index_Request::contents is no longer optional
2017-12-29 12:00:52 -06:00
Jacob Dufault
a10bb50f51
Begin cache restructure so it can be tested
2017-12-29 12:00:52 -06:00
Jacob Dufault
c596e55dcc
Cleanup some includes.
2017-12-29 12:00:52 -06:00
Jacob Dufault
b6071004df
Rename IndexMain to Indexer_Main
2017-12-29 12:00:52 -06:00
Jacob Dufault
59e79b3c42
Move entry_points.h into import_pipeline.h
2017-12-29 09:52:43 -06:00
Jacob Dufault
36e7fa9a76
More work on e2e tests
2017-12-29 09:39:10 -06:00
Fangrui Song
6636617b4d
[comments] Import mpark/variant and make MarkedString a variant ( #200 )
2017-12-28 15:21:40 -08:00