Commit Graph

1355 Commits

Author SHA1 Message Date
Fangrui Song
e522ce8179 Backport recent update of completion 2019-10-23 21:56:51 -07:00
Fangrui Song
43d1ec144c Catch filesystem_error 2019-10-23 21:56:51 -07:00
Fangrui Song
662933e64c Simplify indexer and query 2019-10-23 21:56:51 -07:00
Fangrui Song
9ed024f5cc Simplify lsp.h and fix qual_name_offset when SetVarDetail is called on an existing variable 2019-10-23 21:56:51 -07:00
Fangrui Song
cdc7544471 Better definition/references on #include lines 2019-10-23 21:56:50 -07:00
Fangrui Song
5fb88749a9 Simplify Position & Range; prettify Maybe; remove file_contents.{h,cc} 2019-10-23 21:56:50 -07:00
Fangrui Song
a632f97a2d Remove import_manager.cc 2019-10-23 21:56:50 -07:00
Fangrui Song
b872faa160 Simplify 2019-10-23 21:56:50 -07:00
Fangrui Song
3fbfb99e1b Use clang_File_tryGetRealPathName 2019-10-23 21:56:50 -07:00
Fangrui Song
a52d56a453 Add qual_name_offset to Index* structs; improve workspace/symbol and documentSymbol 2019-10-23 21:56:50 -07:00
Fangrui Song
2035a24c74 Set typeDefinitionProvider 2019-10-23 21:56:50 -07:00
Fangrui Song
96bba583c9 Remove unused fs code. 2019-10-23 21:56:50 -07:00
Fangrui Song
fdb562bb42 Use global config. 2019-10-23 21:56:50 -07:00
Fangrui Song
062b1ad0fd Simplify optional. 2019-10-23 21:56:50 -07:00
Fangrui Song
38cc501a8a Fuzzy 2019-10-23 21:56:50 -07:00
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
eb7d0951ce . 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
Fangrui Song
6c95649904 Improve fuzzy matching heuristics. 2019-10-23 21:56:50 -07:00
Chao Shen
4a95eda9d7 Fix lost index update. 2019-10-23 21:56:50 -07:00
Pavel Davydov
fdba724f07 Add comment with short issue description. (#545) 2019-10-23 21:56:50 -07:00
Pavel Davydov
a6e62aa28c Blacklist '-include' and '-include-pch' flags. (#545) 2019-10-23 21:56:50 -07:00
Maxim Kot
b68b063abd UB fixed.
Forgotten return was removed.
2019-10-23 21:56:50 -07:00
Jacob Dufault
47aa9b8e23 Work on e2e tests 2019-10-23 21:56:50 -07:00
Jacob Dufault
98090c543d Minor type cleanup 2019-10-23 21:56:50 -07:00
Chao Shen
eefaad79f2 Preprocessor keyword completion. 2019-10-23 21:56:50 -07:00
Patrick Reisert
9ba87673b8 Ignore cl's -showIncludes 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
Jacob Dufault
ee87d6cb97 Fix some warnings due to missing returns 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
Jacob Dufault
38fbe89b4c Don't use an IterationLoop for main indexer.
This causes the indexer to exit.
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
702eec9f2a Undo changes to diagnostics engine and import pipeline
They didn't seem necessary
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
Jacob Dufault
1fd0a1be94 Reduce queue lengths by running index updates as iteration loop
A single translation unit can create many index updates, so give
IndexMain_DoCreateIndexUpdate a chance to run a few times. This should also be
faster as it is more icache friendly.
2019-10-23 21:56:50 -07:00
Jacob Dufault
ef59e59f5b Ensure IndexMergeIndexUpdates always returns a bool 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
4e76cdaaae Try to prevent long queue lengths. 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
Jacob Dufault
0b1cc52c58 Fix crash when dynamically adding completion item 2019-10-23 21:56:50 -07:00
Jacob Dufault
259d30ef8a Don't use std::mismatch. Unit tests crash on Windows. 2019-10-23 21:56:50 -07:00
Jacob Dufault
997bcdf05a Restore call to GetPlatformClangArguments 2019-10-23 21:56:50 -07:00
Jacob Dufault
fb304d5c95 Restore platform arguments 2019-10-23 21:56:50 -07:00
Fangrui Song
90329e5453 Simplify ComputeGuessScore 2019-10-23 21:56:50 -07:00
Boris Staletic
193d42ea78 Make CL mode detection fool-proof (#528) 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
Boris Staletic
13cccda781 Add -idirafter ot kPathArgs (#529) 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
d571fed293 Fix skipped region in clang 6.0.0; add repology badge; remove -latomic 2019-10-23 21:56:50 -07:00
Fangrui Song
aa2910208f Fix g++ build 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
6cd339059f Fix #518 2018-03-14 21:12:55 -07:00
Fangrui Song
cebd6bb7c7 Remove platform arguments, update Travis & AppVeyor to use clang+llvm 6.0.0
Close #509
2018-03-13 17:39:06 -07:00
Fangrui Song
3a752a3c8f Adjust order of GetPlatformClangArguments 2018-03-11 22:13:17 -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
DaanDeMeyer
9b3ec699e0 fix windows relative path include dirs (#501)
* Only do path normalization on clang-cl + clang-format

* Improve clang-cl checking + add /I to args that could be followed by a relative path + add two test cases
2018-03-11 10:08:41 -07:00
Fangrui Song
2a7117e6e5 Fix hierarchical .cquery 2018-03-10 19:51:08 -08: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
ce6b7363c6 Upgrade to --bundled-clang=6.0.0 2018-03-08 20:04:05 -08:00
Fangrui Song
f9f8429c74 Uniquify {func,type}.derived 2018-03-07 15:08:50 -08:00
Fangrui Song
478e542e8a Move lsSymbolKind to lsp.h 2018-03-07 13:20:31 -08:00
Fangrui Song
15ec6036e7 Set parentKind of Func/Var from declarations if they have no definition 2018-03-07 00:56:47 -08:00
Fangrui Song
57f2c325f0 parentKind in semantic highlighting: SymbolKind -> lsSymbolKind 2018-03-07 00:34:20 -08:00
Fangrui Song
6815f1312f Add semantic parent to textDocument/references 2018-03-06 20:05:32 -08:00
Fangrui Song
a1210db985 Add --log-file-append 2018-03-06 17:58:29 -08:00
Daan De Meyer
6b167e7773 remove unnecessary include 2018-03-06 13:15:37 -08:00
Daan De Meyer
46bc43acc4 Add unit test for IsWindowsAbsolutePath and remove explitic true/false checks (! instead) 2018-03-06 13:15:37 -08:00
Daan De Meyer
26e50e695d Add unit test for IsWindowsAbsolutePath 2018-03-06 13:15:37 -08:00
Daan De Meyer
99904874ca Fix libclang generic error on Windows 2018-03-06 13:15:37 -08:00
Fangrui Song
e5a904f9c7 Fix --test-unit 2018-03-05 20:46:45 -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
df95cd4780 Fix #487 dead loop in hierarchical .cquery 2018-03-03 14:43:51 -08:00
Fangrui Song
68b7ed5852 Simplify clang_indexer.cc 2018-03-02 10:19:19 -08:00
Fangrui Song
d8b9acc790 [waf] Remove -Werror and reorder some libclang labels 2018-03-02 10:01:49 -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
Chao Shen
e03a3a8e7c Add dummy compiler argument. 2018-03-01 19:12:59 -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
56f57fc38e Add missing GetCompletionKind branches 2018-02-28 21:49:44 -08:00
Fangrui Song
8e70a1078e Use call sites for callHierarchy 2018-02-28 17:56:49 -08:00
Fangrui Song
1cc5b85ef4 Fix -Wunused-variable when CINDEX_VERSION >= 47 2018-02-28 08:35:06 -08:00
Jacob Dufault
ab508bb12e Revert "[[noreturn]] on cquery_unreachable_internal"
This reverts commit 5db4314a5e3b3010bc5883e8d775e396164d7d85.
2018-02-27 23:23:07 -08:00
Jacob Dufault
d1fdf231c8 Make all call type default in $cquery/callHierarchy 2018-02-27 23:08:39 -08:00
Jacob Dufault
78fe0c7ebe Better comment in project.cc 2018-02-27 23:08:23 -08:00
Jacob Dufault
c43b197b99 [[noreturn]] on cquery_unreachable_internal 2018-02-27 23:08:06 -08:00
Jacob Dufault
e44109aee9 Reorder some IPC members 2018-02-27 23:07:53 -08:00
Jacob Dufault
7a81a5dbc5 Better error message for issue #478 2018-02-27 23:07:40 -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
8a427dfa9e Add role to lsLocationEx 2018-02-24 21:47:51 -08:00
Fangrui Song
1469723c3c Don't show references (e.g. there are references to classes in constructor positions) in textDocument/documentSymbol 2018-02-24 17:30:29 -08:00
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