Commit Graph

304 Commits

Author SHA1 Message Date
Elliot Berman
1afb6c3988 Flush sessions on textDocument/didOpen 2018-03-20 16:48:44 -07:00
Elliot Berman
f17196e3da Flush all clang-complete sessions on workspace/didChangeConfiguration 2018-03-20 16:48:44 -07:00
Boris Staletic
c6ea1f1946 Conditionally allow reindex on didChange 2018-03-20 00:09:40 -07:00
Jacob Dufault
c7e5299bee Reformat 2018-03-19 19:51:42 -07:00
Jacob Dufault
3f5e34ef20 Restore include completion on # 2018-03-19 19:50:22 -07:00
Fangrui Song
b9c3af0be9 Don't include system header files for #include " (#i") completion 2018-03-18 14:56:30 -07:00
Fangrui Song
1e019f4984 Simplify and optimize completion. 2018-03-18 13:06:40 -07:00
Fangrui Song
639f587e01 Optimize FuzzyMatcher and add tests. 2018-03-18 12:18:16 -07:00
Fangrui Song
55bfe58fea textDocument/didOpen: add args to override project entry 2018-03-17 13:24:21 -07:00
Fangrui Song
552658f967 Variant of clangd fuzzy matcher 2018-03-16 00:41:58 -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
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
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
6815f1312f Add semantic parent to textDocument/references 2018-03-06 20:05:32 -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
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
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
8e70a1078e Use call sites for callHierarchy 2018-02-28 17:56:49 -08:00
Jacob Dufault
d1fdf231c8 Make all call type default in $cquery/callHierarchy 2018-02-27 23:08:39 -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
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
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
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
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
d33bf50181 Order SymbolRef by size first, Role::Definition second 2018-02-18 19:46:22 -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
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