Commit Graph

428 Commits

Author SHA1 Message Date
Fangrui Song
aebf2dfaed Add index.multiVersion{Black,White}list
They allow files matching specified patterns to be indexed only once
even if index.multiVersion > 0. An example is to exclude system headers
with index.multiVersionBlacklist: ["^/usr/include"]
2018-09-03 12:28:55 -07:00
Fangrui Song
a33f4df404 index.multiVersion: int
Before, QueryFile::Def::{all_symbols,outline} were built by indexers.
Now, {symbol,outline}2refcnt are used instead, built by main thread.
*_removed are augmented with Query*:Def to allow removal of old {symbol,outline}2refcnt entries.
2018-09-03 12:27:26 -07:00
Fangrui Song
145630ba1a Fix unaligned load/store; add index.multiVersion prototype, rename index.onParse to index.OnOpen
Don't call getFieldOffset() on RD->isInvalidDecl()
2018-09-02 23:10:03 -07:00
Fangrui Song
caddc18860 Uniquify $ccls/inheritanceHierarchy and add flat to $ccls/memberHierarchy 2018-08-24 10:37:47 -07:00
Fangrui Song
f3490a3e6c Add license notice 2018-08-20 22:27:52 -07:00
Fangrui Song
431eef2167 textDocument/hover: prefer definitions in the same file 2018-08-19 13:11:47 -07:00
Fangrui Song
8cbb317dc2 clang-format
DEF CON 26 CTF
2018-08-09 10:13:54 -07:00
Fangrui Song
b9e1c2ee07 Add flat to $ccls/inheritanceHierarchy 2018-08-08 00:25:46 -07:00
Fangrui Song
924fedbb02 Uniquify textDocument/references
There can be duplicates with template instantiation.
2018-07-30 18:00:54 -07:00
Fangrui Song
0bb311ac56 Add textDocument/codeAction for clang FixIt
What do you think of the challenge ccls-fringe in Real World CTF?
2018-07-29 01:03:30 -07:00
Chao Shen
ff102c9b7e Fix preload completion session. 2018-07-24 20:48:41 -07:00
Fangrui Song
e67ea3af87 Use ContainerDC for extent, index callees, set StaticMethod 2018-07-21 00:54:34 -07:00
Fangrui Song
27d641bf64 Add Query*::file_id to allow textDocument/hover on declarations
Also change StorageClass storage to uint8_t
2018-07-20 23:48:19 -07:00
Fangrui Song
46d397f4b3 --init 2018-07-18 10:51:18 -07:00
Fangrui Song
df72a9eb72 Simplify 2018-07-15 00:55:11 -07:00
Fangrui Song
5dcccea285 Use Clang C++ for completion and diagnostics 2018-07-15 00:15:31 -07:00
Fangrui Song
d604fc38dc Use Sema/CodeCompleteConsumer 2018-07-14 11:41:16 -07:00
Fangrui Song
7c1ff07dc9 Fix memberHierarchy 2018-07-08 23:31:40 -07:00
Fangrui Song
7dd0241a4c First draft: replace libclang indexer with clangIndex 2018-07-07 15:43:05 -07:00
Fangrui Song
f81454b9ec textDocument/references: add excludeRole 2018-07-04 19:16:56 -07:00
Fangrui Song
6a8837d612 diagnostics 2018-07-03 21:51:24 -07:00
Fangrui Song
0df5a2cd66 rename 2018-07-03 11:19:01 -07:00
Fangrui Song
8a9640a56b Add all to textDocument/documentSymbol 2018-07-01 10:19:37 -07:00
Fangrui Song
e5d8153d4b Internalize strings & remove diagnostics_publisher.cc 2018-06-08 10:39:38 -07:00
Fangrui Song
134126629a Infer system include paths from CompilerInvocation 2018-06-04 16:33:03 -07:00
Fangrui Song
0decb01a0f Add Config->reparseForDependency
Specify 1 if for large projects you don't want to reparse dependents at load time when a common .h changes.
2018-06-02 00:57:18 -07:00
Fangrui Song
66580104ba Add Config->largeFileSize; pure virtual or defaulted methods are definitions; fix $ccls/callHierarchy 2018-06-01 16:06:21 -07:00
Fangrui Song
a36e548e03 Remove Timer and PerformanceImportFile 2018-05-31 23:52:51 -07:00
Fangrui Song
39a17a9fd7 Remove WithFileContent & lex_utils.{cc,h} 2018-05-31 21:07:59 -07:00
Fangrui Song
ec00f854a0 $ccls/vars: differentiate local/field/parameter 2018-05-31 19:51:58 -07:00
Fangrui Song
b35d3c8fa8 Remove $ccls/random; remove DB::symbols; decrease DB::entities grow rate 2018-05-31 12:55:13 -07:00
Fangrui Song
23c9c3a061 $ccls/memberHierarchy: add field offset 2018-05-28 21:24:42 -07:00
Fangrui Song
c9f0b65062 Simplify pipeline 2018-05-28 16:13:44 -07:00
Fangrui Song
8fabe3d1ae Replace loguru with a custom logger 2018-05-27 15:14:33 -07:00
Fangrui Song
07f0cdbf38 Simplify; improve $ccls/inheritanceHierarchy 2018-05-26 15:17:26 -07:00
Fangrui Song
4e2f64893c textDocument/references: include base references by default 2018-05-18 08:53:50 -07:00
Fangrui Song
ba45e7ca63 cmake: link against zlib; use StringMap 2018-05-16 00:51:07 -07:00
Fangrui Song
f145c4422f experimental/filesystem -> LLVM/Support/FileSystem.h; sparsepp -> DenseMap 2018-05-13 15:24:04 -07:00
Fangrui Song
d3a36a4ae6 Use llvm::cl and simplify main.cc import_pipeline.cc 2018-05-13 12:08:33 -07:00
Fangrui Song
224ba97f27 Use clang+llvm C++ in cmake; parse args with clang driver 2018-05-13 01:13:14 -07:00
Fangrui Song
bac704f17b Backport and cleanup 2018-05-09 22:55:40 -07:00
scturtle
b55819a8a1 Random changes. (#6) 2018-05-08 00:35:32 -07:00
Fangrui Song
a4a07120a1 Reflect optional by Brandon Tolsch 2018-05-07 20:59:08 -07:00
Fangrui Song
984c6367d1 Redesign import_pipeline.cc and mitigate race (duplicate Query*::uses for initial indexing) 2018-05-06 21:56:14 -07:00
Fangrui Song
86efddf032 README 2018-05-05 15:25:43 -07:00
Fangrui Song
fac5c56682 Use usr as primary key and remove id; simplify import pipeline
Remove on_id_map, IndexMergeIndexUpdates
2018-05-01 22:45:01 -07:00
Fangrui Song
01f1064576 Improve workspace/symbol sorting heuristic 2018-04-29 20:20:20 -07:00
Fangrui Song
d821ac34d8 Merge {timestamp_manager,iindexer}.{cc,h}; remove standard_includes.*; use last_write_time 2018-04-28 23:37:55 -07:00
Fangrui Song
fa9df5bcef Remove variant and clean up 2018-04-17 00:12:59 -07:00
Fangrui Song
f8752cdca0 Add caseSensitivity to config->{completion,workspaceSymbol} 2018-04-14 12:38:58 -07:00
Fangrui Song
d45c057dd4 Backport recent update of completion 2018-04-14 11:38:06 -07:00
Fangrui Song
236e7c1393 Simplify indexer and query 2018-04-09 00:52:04 -07:00
Fangrui Song
97b1592475 Simplify lsp.h and fix qual_name_offset when SetVarDetail is called on an existing variable 2018-04-09 00:31:34 -07:00
Fangrui Song
2a06fb55dd Better definition/references on #include lines 2018-04-08 10:25:50 -07:00
Fangrui Song
75638b5387 Simplify Position & Range; prettify Maybe; remove file_contents.{h,cc} 2018-04-08 01:10:56 -07:00
Fangrui Song
6e68e9edbd Simplify 2018-04-07 21:04:20 -07:00
Fangrui Song
348240b44f Add qual_name_offset to Index* structs; improve workspace/symbol and documentSymbol 2018-04-06 00:18:02 -07:00
Fangrui Song
9f9420519e Set typeDefinitionProvider 2018-04-05 00:15:21 -07:00
Fangrui Song
1dc55843e7 Remove unused fs code. 2018-04-04 10:48:13 -07:00
Fangrui Song
d9bcaecf25 Use global config. 2018-04-04 00:29:27 -07:00
Fangrui Song
d8fbc752d0 . 2018-03-31 17:49:32 -07:00
Fangrui Song
46fc3b8323 . 2018-03-31 16:30:53 -07:00
Fangrui Song
d83be5adcc . 2018-03-31 13:54:19 -07:00
Fangrui Song
233e377137 . 2018-03-31 11:27:28 -07:00
Fangrui Song
6c8fee4141 . 2018-03-31 09:47:27 -07:00
Fangrui Song
f8a816d110 . 2018-03-31 09:07:53 -07:00
Fangrui Song
89dd4b066b . 2018-03-31 00:53:39 -07:00
Fangrui Song
da649891ae Resurrection of ccls 2018-03-30 22:02:26 -07:00
Fangrui Song
512cd8cbd3 Better textDocument/definition heuristic for T::name style dependent names 2018-03-29 22:36:54 -07:00
Chao Shen
ddc318eef3 Preprocessor keyword completion. 2018-03-23 21:26:07 -07:00
Chao Shen
e235dbedfe Fix missing include completions. 2018-03-23 10:42:26 -07:00
Jacob Dufault
7ff4a9aac9 ipc.h -> method.h, rename some types 2018-03-21 22:01:21 -07:00
Jacob Dufault
cad6dcda0c Remove global list of message ids.
Also do some naming cleanup. Also remove xmacros.
2018-03-21 21:05:25 -07:00
Boris Staletic
bdabb7596c 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.
2018-03-21 18:50:42 -07:00
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