Commit Graph

318 Commits

Author SHA1 Message Date
Fangrui Song
daf7a41278 . 2019-10-23 21:56:50 -07:00
Fangrui Song
c96631d1ee . 2019-10-23 21:56:50 -07:00
Fangrui Song
a58a38c32d . 2019-10-23 21:56:50 -07:00
Fangrui Song
22a7bcb47f . 2019-10-23 21:56:50 -07:00
Fangrui Song
ce33cc86d4 . 2019-10-23 21:56:50 -07:00
Fangrui Song
e1398ff319 . 2019-10-23 21:56:50 -07:00
Fangrui Song
f7872d143d . 2019-10-23 21:56:50 -07:00
Fangrui Song
b839389f77 Resurrection of ccls 2019-10-23 21:56:50 -07:00
Fangrui Song
39dfe052f5 Better textDocument/definition heuristic for T::name style dependent names 2019-10-23 21:56:50 -07:00
Chao Shen
eefaad79f2 Preprocessor keyword completion. 2019-10-23 21:56:50 -07:00
Chao Shen
8da0172955 Fix missing include completions. 2019-10-23 21:56:50 -07:00
Jacob Dufault
2fc731c856 ipc.h -> method.h, rename some types 2019-10-23 21:56:50 -07:00
Jacob Dufault
e37a6c814b Remove global list of message ids.
Also do some naming cleanup. Also remove xmacros.
2019-10-23 21:56:50 -07:00
Boris Staletic
39fbd1a2d5 Make overridden flags persistent
didOpen can override flags from compilation database.
didSave was able to reset the flags back.
This makes sure that the overridden flags persist.
2019-10-23 21:56:50 -07:00
Elliot Berman
23bf95b5e3 Flush sessions on textDocument/didOpen 2019-10-23 21:56:50 -07:00
Elliot Berman
c636eae680 Flush all clang-complete sessions on workspace/didChangeConfiguration 2019-10-23 21:56:50 -07:00
Boris Staletic
bf011fef71 Conditionally allow reindex on didChange 2019-10-23 21:56:50 -07:00
Jacob Dufault
db7e25c542 Reformat 2019-10-23 21:56:50 -07:00
Jacob Dufault
af3c09d00d Restore include completion on # 2019-10-23 21:56:50 -07:00
Fangrui Song
2d1c990f1a Don't include system header files for #include " (#i") completion 2019-10-23 21:56:50 -07:00
Fangrui Song
ad88f707f7 Simplify and optimize completion. 2019-10-23 21:56:50 -07:00
Fangrui Song
02542b1e69 Optimize FuzzyMatcher and add tests. 2019-10-23 21:56:50 -07:00
Fangrui Song
11293722cc textDocument/didOpen: add args to override project entry 2019-10-23 21:56:50 -07:00
Fangrui Song
b2b5e57761 Variant of clangd fuzzy matcher 2019-10-23 21:55:32 -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