Commit Graph

87 Commits

Author SHA1 Message Date
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
Jacob Dufault
01fe19f280 Format code 2018-02-21 23:34:32 -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
d33bf50181 Order SymbolRef by size first, Role::Definition second 2018-02-18 19:46:22 -08:00
Fangrui Song
5164c4b2f6 Fix GetCallersForAllBaseFunctions found by romix 2018-02-18 19:08:04 -08:00
Fangrui Song
58d6547411 Remove ClangSymbolKind in favor of lsSymbolKind 2018-02-18 11:43:28 -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
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
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
afd38cbce9 Add Id<QueryFile> file; to Use and simplify query.cc 2018-02-11 20:43:54 -08:00
Fangrui Song
2d6fd4e240 Add UseWithFileId to work around textDocument/definition targets that reside in unnamed namespaces 2018-02-11 18:09:28 -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
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
aa125e34f3 Work around SIGSEGV and simplify SymbolIdx 2018-02-09 17:05:17 -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
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
55c7519e93 Move ImportOrUpdate and header cleanup 2018-02-06 21:27:07 -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
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
392cd79d04 Add Maybe<T> and change definition_{spelling,extent} from optional to Maybe
sizeof(db->funcs[0].def) decreases from 248 to 232
sizeof(db->types[0].def) decreases from 272 to 256
sizeof(db->vars[0].def) decreases from 184 to 168
2018-02-01 21:39:23 -08:00
Fangrui Song
e259bb91d3 Use string_view for lsSymbolInformation 2018-01-31 21:40:40 -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
Jacob Dufault
a8b68d21d7 Fix potential crash 2018-01-29 21:34:36 -08:00
Fangrui Song
5bd466ab17 Fix #372 2018-01-29 19:08:19 -08:00
Jacob Dufault
a392301be3 Format 2018-01-29 16:27:43 -08:00
Fangrui Song
b7ce3dd60a Better template specialization 2018-01-28 23:05:51 -08:00