Fangrui Song
43ea2fcc53
Clean up type printer
2017-12-29 12:58:11 -08:00
Fangrui Song
daaf3a701b
Clean type printer
2017-12-29 12:30:05 -08:00
romix
f897c46122
A more robust way of producing function signatures with parameter names
2017-12-29 12:02:33 -08:00
Fangrui Song
8592df7cf6
Use --bundled-clang=5.0.1 by default (instead of 4.0.0)
2017-12-29 10:40:29 -08:00
Jacob Dufault
f85659713e
Fix compile
2017-12-29 10:28:11 -08:00
Jacob Dufault
6048eb6237
Move LoadCachedFileContents into ICacheManager
2017-12-29 12:19:39 -06:00
Jacob Dufault
71591d7805
Index_Request::contents is no longer optional
2017-12-29 12:00:52 -06:00
Jacob Dufault
a10bb50f51
Begin cache restructure so it can be tested
2017-12-29 12:00:52 -06:00
Jacob Dufault
3c0b2ff042
Move most of import_pipeline.cc into anonymous namespace
2017-12-29 12:00:52 -06:00
Jacob Dufault
c596e55dcc
Cleanup some includes.
2017-12-29 12:00:52 -06:00
Jacob Dufault
48f3c75053
Add using declaration to optional.h, include STL optional if available or fallback to third-party one.
2017-12-29 12:00:52 -06:00
Jacob Dufault
b6071004df
Rename IndexMain to Indexer_Main
2017-12-29 12:00:52 -06:00
Fangrui Song
d4ce12bb9a
Add --use-clang-cxx to waf and move type printer to src/type_printer.cc
...
src/type_printer.cc demonstrates how to leverage clang C++ API.
It includes clang/**/*.h headers and CXTranslationUnit.h which resides
in clang/tools/libclang/ but is not exposed in clang/include/clang-c/
These libclang/ header files are stable and provide some struct definitions used by clang-c/ header files.
A copy of them from clang source tree is checked into libclang/ .
If you want to an early adopter,
CXXFLAGS='-std=c++11 -fno-rtti -D_GLIBCXX_USE_CXX11_ABI=0 -g' ./waf configure --variant=cxx-debug --bundled-clang=5.0.1 --use-clang-cxx
Some clang/**/*.h are unstable and should be used with caution,
in addition, Windows pre-built binaries on https://releases.llvm.org/download.html do not include C++ header files.
Thus `--use-clang-cxx` defaults to False.
2017-12-29 09:51:26 -08:00
Jacob Dufault
59e79b3c42
Move entry_points.h into import_pipeline.h
2017-12-29 09:52:43 -06:00
Jacob Dufault
36e7fa9a76
More work on e2e tests
2017-12-29 09:39:10 -06:00
Jacob Dufault
ad193b2ace
Initialize ImportPipelineStatus::num_active_threads
2017-12-29 09:39:10 -06:00
Fangrui Song
6636617b4d
[comments] Import mpark/variant and make MarkedString a variant ( #200 )
2017-12-28 15:21:40 -08:00
Fangrui Song
34052fbf27
[indexer] Index some references in ClassTemplate
2017-12-28 10:53:13 -08:00
Jacob Dufault
719c6c9ae9
Enhance index test selection filtering
2017-12-28 09:55:17 -08:00
Jacob Dufault
4781e9a53d
Move tests to index_tests
2017-12-28 09:42:55 -08:00
Jacob Dufault
3ab2f2e2b7
Update formatting
2017-12-28 09:22:26 -08:00
Jacob Dufault
7939aec743
Remove WorkThread::Result.
...
WorkThread::StartThread is now a more typical main function.
2017-12-28 09:20:21 -08:00
Jacob Dufault
8468ef09c3
Reduce verbosity of index tests. Make it easier to identify failures.
2017-12-28 09:15:46 -08:00
Jacob Dufault
5ace7e7062
Remove logging
2017-12-28 09:03:35 -08:00
Jacob Dufault
243630ca2e
wip
2017-12-28 08:55:46 -08:00
Fangrui Song
56135f615c
[template] Attribute template parameter references to the parameter declaration. Class templates still do not work
2017-12-28 00:37:10 -08:00
Fangrui Song
cff432a223
[template] Index references to non-type template parameters
2017-12-27 23:42:56 -08:00
scturtle
32bcac38af
Simplify LruCache a little bit. ( #199 )
2017-12-27 23:27:42 -08:00
Fangrui Song
d7d8b820ac
[template] Index template parameter references
2017-12-27 22:58:07 -08:00
Fangrui Song
f86de0b544
function signature: blacklist "typeof "
2017-12-27 19:51:16 -08:00
Fangrui Song
6fa08b2b90
Refactor function signatures: fix infinite loop processing constructors
2017-12-27 18:51:19 -08:00
romix
8bdce31789
Produce detailed function signatures which include parameter names
2017-12-27 15:49:26 -08:00
Jacob Dufault
9dde5041cb
Always use -fparse-all-comments
2017-12-27 07:56:17 -08:00
Jacob Dufault
ef4af128fc
Exit early if unit tests fail
2017-12-27 07:54:46 -08:00
Jacob Dufault
b8e7a5bcb3
Format code
2017-12-27 07:54:46 -08:00
Chao Shen
a84c863e5e
Filter some completion results based on the input.
2017-12-27 09:34:24 -06:00
Fangrui Song
3df71f4145
[hover] Change the first MarkedString's language to "text"
2017-12-25 21:48:28 -08:00
Fangrui Song
5a22a5cc66
[hover] Return comments and hover as two MarkedString's
...
Inspired by @romix's https://github.com/jacobdufault/cquery/pull/187
2017-12-25 21:31:01 -08:00
Fangrui Song
23bbe81b92
Un-indent extracted comments ( #191 )
2017-12-25 11:20:47 -08:00
Fangrui Song
20c156f71d
Make lsTextDocumentContentChangeEvent::{range,rangeLength} optional. fix #185 ( #189 )
...
Also make lsVersionedTextDocumentIdentifier::version optional per specification
2017-12-25 00:58:26 -08:00
Fangrui Song
bfccac525c
Add experimental command line option --enable-comments to index comments and display them on textDocument/hover ( #188 )
2017-12-24 18:47:39 -08:00
romix
03b50ea3cc
Serialize decl comments and use them in GetHoverForSymbol
2017-12-24 18:01:38 -08:00
Fangrui Song
2ffc068760
Handle function calls from templates. fix #174
2017-12-24 15:12:52 -08:00
Fangrui Song
dced34dd58
Reopen #174
2017-12-24 13:28:53 -08:00
Fangrui Song
4b9bc342f5
Fix called_id
2017-12-24 10:43:32 -08:00
Fangrui Song
6a8537c2bf
Handle function references in templates. fix #174 ( #184 )
2017-12-24 10:27:17 -08:00
Fangrui Song
dd4044998d
Add TemplateVisitor to handle CXCursor_OverloadedDeclRef in templates
2017-12-24 00:35:38 -08:00
Fangrui Song
cdcf75ac84
Raise maxWorkspaceSearchResults to 500 and sort results even if the max number has been reached
2017-12-23 22:49:45 -08:00
Fangrui Song
b52ec9070c
[workspace/symbol] Use short_name for sorting and detailed_name for displaying results
2017-12-23 21:27:01 -08:00
Fangrui Song
24f428c670
[workspace/symbol] Sort candidates with a fuzzy matching algorithm ( #182 )
2017-12-23 19:23:29 -08:00
Jacob Dufault
dce1365eb6
Move import pipeline into import_pipeline.cc
2017-12-23 17:30:55 -08:00
scturtle
f10521372b
Initilize var.def.cls to unknown.
2017-12-23 19:29:32 -06:00
scturtle
cb7ccbe543
Change var.def.is_* to enum.
2017-12-23 19:29:32 -06:00
Jacob Dufault
f6d84cd68c
Merge IpcManager and QueueManager
2017-12-23 16:25:18 -08:00
Jacob Dufault
27b5816a7f
Small doc updates
2017-12-23 15:42:54 -08:00
Jacob Dufault
64f094d347
Move BuildWorkspaceEdit to text_document_rename.cc
2017-12-23 15:41:09 -08:00
Jacob Dufault
2bc44d59f2
Add --wait-for-input.
...
Previous on Windows when running index tests cquery would wait for the user to
press enter. This breaks AppVeyor CI.
2017-12-23 17:25:18 -06:00
Fangrui Song
af5ae31c34
Don't emit more diagnostics after hitting -ferror-limit
2017-12-23 15:20:13 -08:00
Fangrui Song
c04c9fa750
Don't emit more diagnostics after hitting -ferror-limit
2017-12-23 15:08:47 -08:00
Fangrui Song
646d154b9b
Better heuristics, noexcept specifier and C11 _Atomic specifier
2017-12-23 09:57:12 -08:00
Fangrui Song
156d4891c3
[hover] Better heuristics to insert function name right before the paren pair enclosing parameters ( #178 )
2017-12-23 09:29:13 -08:00
Jacob Dufault
fb491e6c6d
Format using clang format 4.0.0
2017-12-23 08:33:26 -08:00
Jacob Dufault
4aeb6acf04
Test improvements:
...
- Update files with \r\n newlines.
- Require clang 4.0.0 for running tests.
2017-12-23 07:51:34 -08:00
Chao Shen
0985613d16
Add is_global and is_member.
2017-12-23 01:00:46 -06:00
Fangrui Song
2056e44d22
Insert qualified name right before matching paren ( of last ) in function's type spelling
...
Before, function<int(int)> and (anon) mess up the function signature
2017-12-22 15:48:30 -08:00
Fangrui Song
c3c0feecb2
[indexer] Make hover
optional ( #176 )
...
On textDocument/hover requests, return `detailed_name` if `hover` is unavailable
Don't include leading `type_name` in `detailed_name` for CXIdxEntityEnumConstant, i.e. `Foo Foo::a` -> `Foo::a`
2017-12-22 14:48:55 -08:00
Fangrui Song
ba4a5e91cb
[indexer] Remove IsLocalSemanticContainer check in qualified names
2017-12-22 09:21:53 -08:00
Jacob Dufault
ea323a3b4b
Actually skip the test
2017-12-22 09:14:11 -08:00
Jacob Dufault
b4b45d36b5
Only run Objective-C tests on Apple platforms
2017-12-22 09:07:21 -08:00
Jacob Dufault
fd7c01796c
Do not include path in lambda detail/hover string
2017-12-22 08:59:37 -08:00
Jacob Dufault
e1ac3103a8
Add TEXT_REPLACE in index tests.
...
This allows USRs to vary across platforms in index tests, which is required to
make them pass on all platforms.
2017-12-22 08:48:12 -08:00
Jacob Dufault
d7a183c796
Try to keep semantic highlighting colors stable across open files.
2017-12-22 07:29:13 -08:00
Fangrui Song
043e9a4d44
[indexer] Fix hover info of class member functions
2017-12-21 22:46:45 -08:00
Fangrui Song
ba1ca37326
[indexer] Make $cquery/base find correct overriden functions ( #169 )
2017-12-20 23:18:48 -08:00
Fangrui Song
6aefa9b114
[indexer] Handle unnamed namespaces
2017-12-20 19:52:34 -08:00
Fangrui Song
6e231628fe
Specify lambda return type to work around clang 3.5 build issue
2017-12-20 19:28:57 -08:00
Fangrui Song
3410f9769c
textDocument/definitions: on a variable definition, get both declarations and variable_type definition.
2017-12-20 10:59:14 -08:00
Jacob Dufault
b75875a83e
Fix CI
2017-12-20 10:27:10 -08:00
Jacob Dufault
e26f1caaba
Some changes to index tests:
...
- Add EXTRA_FLAGS: which lets a test specify additional command line
flags to pass to clang.
- Show diagnostics in the terminal after indexing the file.
- Allow the user to pass a test filter/file on the command line (ie,
cquery --test-index foo.cc)
2017-12-20 09:12:22 -08:00
Jacob Dufault
4bf8dbe3ea
Move std::cin.tie to main
2017-12-20 09:12:22 -08:00
Fangrui Song
ee78b527ae
[indexer] Treat empty short_name as implicit call which should not be included in all_symbols
...
std::vector<int> a = f(); // besides f, there is an implicit move constructor vector(vector<T>&&)
We expect finding references on `f` takes us to `f`, not to `vector(vector<T>&&)`
2017-12-20 07:46:43 -08:00
Joel Hock
4b420c53d3
add unit test
2017-12-19 08:16:52 -08:00
Joel Hock
bea5b38bc5
/.cquery file parsing fixes
...
- relative path handling
- first line was being ignored if it was a flag (code assumed it was path to clang binary)
2017-12-19 08:16:52 -08:00
Jacob Dufault
b9a2b68e93
Never elide result
response for hover.
2017-12-18 23:54:00 -08:00
Jacob Dufault
7e9db4a2da
Send null hover response if there is no hover.
2017-12-18 23:27:52 -08:00
Fangrui Song
18f602c6e8
For textDocument/hover, do not error on empty results
2017-12-18 23:21:30 -08:00
Fangrui Song
cf4603c6fa
Add FileContentsWithOffsets
2017-12-18 23:05:12 -08:00
Jacob Dufault
8098e4f01d
Support multiple base functions.
2017-12-18 22:15:46 -08:00
Jacob Dufault
b4e8f8dd4f
Don't show idle status while loading compile_commands.json/project.
2017-12-18 21:36:48 -08:00
Jacob Dufault
a7d1c6917f
Report detailed name for workspace symbol search.
...
This fixes vscode filtering which fixes qualified name global symbol search.
2017-12-18 21:31:19 -08:00
Jacob Dufault
be961fc4f2
Add hover (instead of reusing detailed_name)
2017-12-18 21:20:00 -08:00
Jacob Dufault
3d4ebcd7ee
Update tests for llvm 4
2017-12-18 20:40:12 -08:00
Fangrui Song
8897bcc54d
[indexer] Display declaration line for typedef/using. fix #141
...
GetDocumentContentInRange calls clang_tokenize, which is not easy to
handle multi-line declarations. Only display declaration lines for
one-line `typedef`/`using` now.
2017-12-18 19:30:49 -08:00
Jacob Dufault
1fd50b4dea
Fix MSVC build.
2017-12-18 16:35:43 -08:00
Walter Erquinigo
cb098cbfc3
test
2017-12-18 16:26:58 -08:00
Walter Erquinigo
a6cb98945e
Add obj-c support in the indexer
2017-12-18 16:26:58 -08:00
Fangrui Song
5600989a42
[indexer] Treat explicit destructor call as not is_implicit
( #159 )
...
Also fixed an unused warning.
2017-12-18 13:48:32 -08:00
Jacob Dufault
002d32c8a0
Fix broken auto-resource-dir detection
2017-12-18 11:47:58 -08:00
Fangrui Song
9fd35db034
[indexer] Index references to system headers
2017-12-17 21:16:40 -08:00
Fangrui Song
ef7215cd7f
textDocument/definition: find macro definition instead of Type definition if the macro expands to tokens led by a SymbolKind::Type
2017-12-17 21:14:57 -08:00