Commit Graph

1183 Commits

Author SHA1 Message Date
Fangrui Song
b53c41408e Support %c %cpp %clang in clang command line and remove -std=gnu11 -std=gnu++14 defaults
If you want to mix C/C++ source files in a `.cquery` project:

echo -e '%clang\n%cpp -std=gnu++14' > .cquery
2018-02-24 15:21:32 -08:00
Fangrui Song
62e6f91808 Don't include rapidjson in indexer.h 2018-02-23 18:30:06 -08:00
Fangrui Song
bee8bacefd Speed up build 2018-02-23 18:24:54 -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
b98c9a4575 Remove UniqueAdd* and uniquify uses after libclang callbacks.
This removes some duplication in `uses`.
2018-02-23 15:08:19 -08:00
Nathan Ridge
9f4b30ca8c Fix semantic highlighting regressions from switch from ClangSymbolKind to lsSymbolKind (fixes #469) 2018-02-22 16:11:35 -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
d2bc737068 Semantic highlighting of macros 2018-02-22 09:43:53 -08:00
Fangrui Song
cfa0308ff6 Update tests 2018-02-22 08:54:05 -08:00
Fangrui Song
b9fcbddc6d Use -working-directory= 2018-02-22 08:50:49 -08:00
scturtle
319cec6e0a fix ci 2018-02-22 17:02:00 +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
20d1636024 Support clang-cl and cl.exe 2018-02-21 00:24:34 -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
3f4b727b4b Remove -xc -xc++; add -std=gnu11 -std=gnu++14 only in .cquery mode and when --driver-mode is unspecified 2018-02-19 18:23:30 -08:00
Fangrui Song
e83fce65c2 Add loose mode in project.cc 2018-02-19 17:19:50 -08:00
Fangrui Song
f9d7361953 Add Config::compilationDatabaseCommand
If specified, this is an external command that provides the JSON compilation database, instead of compile_commands.json
2018-02-19 16:20:02 -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
488f6cc962 Add lsSymbolKind::StaticMethod (extension) and set parentKind 2018-02-18 19:01:22 -08:00
Fangrui Song
9217393a78 Add semantic highlighting test file
Don't mark destructors as type references.
2018-02-18 14:50:11 -08:00
Fangrui Song
bfd4edf177 Remove local variables from documentSymbol 2018-02-18 12:07:40 -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
Patil Arpith
afdde4d59f Making completion_request_ ThreadedQueue from AtomicObject (#459) 2018-02-18 09:15:39 -08:00
Boris Staletic
be4d37dac3 Fix integer sign comparison 2018-02-18 09:10:27 -08:00
Fangrui Song
015195036c Maintain a list of Def in Query{Func,Var}::Def 2018-02-18 00:42:04 -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
7e45983d6d Don't store -fsyntax-only in compilation entries
There is a FIXME about the usage of -fsyntax-only in clang::createInvocationFromCommandLine
2018-02-14 23:02:37 -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
Jacob Dufault
3d3b5dfeb3 Objective-c test failures should no longer bring down CI 2018-02-13 23:30:11 -08:00
Fangrui Song
9fddd5173e Fix #452 2018-02-13 22:24:36 -08:00
Jacob Dufault
aba38a9da1 Ask user for relevant diagnostics when clang translation unit creation fails.
Closes issue #450.
2018-02-13 21:23:35 -08:00
Jacob Dufault
71a55ce46b Fix querydb corruption/invalid references accumulating over time.
Hopefully this catches all of the issues. We will see in time.

This resolves issue #443
2018-02-13 21:13:59 -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
Jacob Dufault
aae6f456de Fix crash in ClangCursor::get_arguments 2018-02-13 10:23:58 -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
10437aa642 Disable variable PrettyPrint #if CINDEX_VERSION >= 47 and allow trunk libclang in tests 2018-02-12 19:15:39 -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
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
a90dc25c5a Add failing test for issue #443 2018-02-11 17:15:56 -08:00
Jacob Dufault
699cf4b506 Fix IndexUpdate::ToString 2018-02-11 17:15:08 -08:00
Jacob Dufault
886f6f4a2c Show doctest help if requested. 2018-02-11 17:14:45 -08:00
Jacob Dufault
35c407b2ac Don't parse version for json if there is no expected version. 2018-02-11 17:14:27 -08:00
Jacob Dufault
1d98797f26 Remove QueryDb_Handle
Code is harder to read and it doesn't belong in import_pipeline.cc.
2018-02-11 14:31:24 -08:00
Jacob Dufault
95872d36fd Remove some unused declarations 2018-02-11 14:17:03 -08:00
Jacob Dufault
079adea8ee NTString -> nt_string 2018-02-11 14:08:05 -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
95f6460e6e HasValue -> HasValueForMaybe_ 2018-02-11 13:49:44 -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
Manny Schneck
d79a7a3fa1 Use MAKE_ENUM_HASHABLE to hash SymbolKind 2018-02-11 10:15:28 +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
scturtle
a50bff0b24 Make gcc happy. 2018-02-10 19:50:39 +08:00
Fangrui Song
bd4482df5e GetDefinitionSpellingOfSymbol: optional -> Maybe 2018-02-10 00:19:17 -08:00
Fangrui Song
749ecf0faa Add {Index,Query}Family to simplify template parameters 2018-02-10 00:06:45 -08:00
Fangrui Song
e7c90b62b5 $cquery/base for virtual void f() = 0 2018-02-09 23:12:34 -08:00
scturtle
1342522f2a Make CI happy. 2018-02-10 12:43:48 +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
95515643d8 Remove ToSymbol 2018-02-09 15:39:55 -08:00
Fangrui Song
c4bd7ef44b Rename Reference members 2018-02-09 14:12:35 -08:00
Chao Shen
c5f08c5eb8 Fix a bunch of stuffs in completion. 2018-02-09 20:51:59 +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
4bfb5a3586 struct IndexFuncRef : Reference {}; 2018-02-08 22:06:09 -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
Jacob Dufault
5f85867f88 Scan root directory for includes 2018-02-08 15:27:53 -08:00
Fangrui Song
48a6f836ca Fix SymbolRole serialization and make it hashable 2018-02-08 12:24:48 -08:00
Fangrui Song
715fece4dd QueryLocation and QueryRef 2018-02-08 10:15:55 -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