Daniel Martín
abc2edf05f
Add structures to support document formatting
2017-12-31 13:24:58 +01:00
scturtle
4c2dff39ef
Response "being indexed" instead of "not found".
2017-12-30 19:39:10 -08:00
Fangrui Song
77e9ea1b77
Use cursor extents for is_implicit
function calls
...
cursor extents have larger ranges and less specific, thus making
them overridable by more specific (with smaller range) symbols.
Thus we do not need to hide them in query.cc:BuildFileDef
For example, the left paren in `A a(3)` jumps to the constructor.
the left paren in `A a = f()` jumps to the copy/move constructor.
2017-12-30 15:42:08 -08:00
Fangrui Song
95126bff61
In detailed_name
, remove space between *
and name
2017-12-30 13:11:55 -08:00
Fangrui Song
947a80ecc8
[comments] Add a minimalist approach to skip Doxygen comment markers
2017-12-30 10:56:34 -08:00
Chao Shen
829b2fe18c
Better order of the completion items.
2017-12-30 15:15:46 +08:00
Fangrui Song
11aa09fac2
Don't reject macro definitions in system headers
...
Before, an assert() macro expansion jumps to __assert_fail but not
assert. This is because OnIndexReference finds a reference to __assert_fail
but VisitMacroDefinitionAndExpansions rejects the expansion.
2017-12-29 19:18:42 -08:00
Fangrui Song
48e88950e1
Complete CompletionItemKind
2017-12-29 16:32:43 -08:00
Fangrui Song
b015b03405
Fix platform_posix.cc on FreeBSD
2017-12-29 14:46:21 -08:00
Fangrui Song
66d4926e41
Remove <sys/prctl.h> and set thread name on BSD & __APPLE__
2017-12-29 14:35:20 -08:00
Fangrui Song
720266e97a
Support equal signs in options, e.g. --log-file=a.log
2017-12-29 14:00:02 -08:00
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
Fangrui Song
2fb135e10a
Support FreeBSD
...
This commit fixes issue on cquery's side. Its dependencies loguru and
sparsepp should also be ported to FreeBSD:
* https://github.com/emilk/loguru/pull/46
* sysinfo(2) called by sparsepp https://github.com/greg7mdp/sparsepp/blob/master/sparsepp/spp_memory.h#L32
2017-12-17 16:44:21 -08:00
Riatre Foo
0045e4817c
Windows build script ( #154 )
...
* Cast from float explicitly.
* Upgrades to waf 2.0.2.
For VS2017 support on Windows.
* [waf] Supports building on Windows.
Needs 7z.exe in PATH for extracting prebuilt clang NSIS installer (when
using bundled clang).
RPATH is "emulated" by putting a libclang.dll alongside the cquery
binary.
Tested with Visual Studio 2017 toolchain.
* [waf] Fix default_resource_directory on Windows + system clang.
* Add AppVeyor configuration
2017-12-17 10:14:30 -08:00
DaanDeMeyer
4aa92466eb
Fix IsSymLink on Linux ( #147 )
...
IsSymlink was giving faulty results when finding recursive files on Linux. I've updated the function to use the built-in POSIX macro for checking if a file is a symlink.
2017-12-16 08:32:10 -08:00
Jacob Dufault
c0c3fc41a4
Do not emit an include in the indexer if we failed to resolve the file. Also add -resource-dir to tests.
2017-12-15 21:24:31 -08:00
Jacob Dufault
d23de3a9fb
Move default resource directory computation to utils.
...
This will be used by the test system as well.
2017-12-15 21:18:49 -08:00
Jacob Dufault
883f886d2a
Make sure GetExecutablePath is normalized on windows.
2017-12-15 21:18:23 -08:00
Jacob Dufault
9f249970b0
Ensure DEFAULT_RESOURCE_DIRECTORY is a string.
2017-12-15 21:06:27 -08:00
Jacob Dufault
487680e8d1
Fix project.cc unit tests.
...
-x processing broke.
2017-12-15 21:05:48 -08:00
Walter Erquinigo
5238c50027
objc
2017-12-15 12:02:32 -08:00
Chen
f3f7bc26cd
Better default resource dir heuristics: use system resource dir with system clang and relative path to resource dir with bundled clang ( #137 )
2017-12-14 14:35:21 -08:00
Fangrui Song
17cac3d30a
[indexer] Change macro's IndexVar::def::detail_name to its approximate definition
...
For `#define foo 3`,
Before this commit, `detail_name` was `foo` (displayed for textDocument/hover reqeusts).
It is now shown as `#define foo 3`
2017-12-13 09:35:44 -08:00
Jacob Dufault
a1fd516788
Log stack trace when there is bad index/buffer lines
2017-12-12 09:50:12 -08:00
Jacob Dufault
1467526bad
Be less aggressive about indexing potential lambdas
2017-12-12 09:49:52 -08:00
Fangrui Song
17f23bf3bf
In OnIndexDeclaration, get_type_description() may return the name of a typedef and there is no (, causing insert
failing
2017-12-12 00:14:25 -08:00
Jacob Dufault
9b909b3a13
Move usr out of *Def and into Query*/Index* types.
...
I'd like to make the *Def structures optional in the future, and usr is always non-optional.
2017-12-11 23:57:44 -08:00
Jacob Dufault
2751f51956
Format
2017-12-11 21:21:03 -08:00
Jacob Dufault
12bfabf9c2
No more NonElidedVector
2017-12-11 21:20:29 -08:00
Jacob Dufault
e535fab581
Do not elide vector in serialization
2017-12-11 21:15:37 -08:00
Fangrui Song
fb902a29b7
Add missing definition and reference info to lambda paramaters. fix #120
2017-12-11 21:06:55 -08:00
Fangrui Song
c6135f5de0
Reflect empty string
...
MarkedString::value is a mandatory field and the client may complain if `value` does not exist.
2017-12-11 21:03:30 -08:00
Fangrui Song
86cc50e27f
Implement diagnostic range as per clang_formatDiagnostic
2017-12-11 13:34:37 -08:00
Peter Elmers
177e4cd224
Escape more symbols in path handling.
2017-12-11 11:11:02 -08:00
Fangrui Song
479c0c59bc
More idiomatic
2017-12-10 19:53:17 -08:00
Jacob Dufault
4a7ca6168f
Reformat
2017-12-07 11:54:51 -08:00
Yuxuan Shui
93fb746992
Convert priority to a string properly for sortText
...
Cast the number to a char directly sometimes results in a invalid UTF-8
string, which is not good for some clients.
2017-12-07 10:38:43 -08:00
Fangrui Song
77ccee10ce
Serialize clang_createIndex to prevent race condition (concurrent modify/read to FirstTarget defined in lib/Support/TargetRegistry.cpp)
2017-12-07 10:29:42 -08:00
Jacob Dufault
ae8cae5ba6
Do not index files starting with git:
2017-12-06 17:00:19 -08:00
Jacob Dufault
3b9371f4b5
Reduce STDERR logging to only WARNING and above.
...
INFO logs are now only viewable in the log file, which is not written
by default. A new command line option --log-file can be used to control
where the log file is written.
INFO logs can be written to STDERR if --log-all-to-stderr is passed.
2017-12-06 10:58:30 -08:00
Jacob Dufault
0e4148518a
Fix clang 3.8 build
2017-12-06 09:10:58 -08:00
Jacob Dufault
ae40bfa208
Add override
2017-12-06 07:10:19 -08:00
Jacob Dufault
7a5eb3c4d5
Move src/messages/*.cc to anonymous namespace
2017-12-05 21:03:38 -08:00
Jacob Dufault
b65a30c3f7
Move Ipc_* types into messages/
2017-12-05 20:41:44 -08:00
Jacob Dufault
5093863b33
Move initialization Ipc structures into messages/
2017-12-05 20:09:12 -08:00
Jacob Dufault
ad550f3f2c
Enable global/static registration for IpcMessage.
2017-12-05 20:09:12 -08:00
Jacob Dufault
9a3e040bf8
Fix clang build
2017-12-05 19:49:16 -08:00
Jacob Dufault
b441a90e0d
Finish migrating to messages/
2017-12-05 19:46:36 -08:00
Yuxuan Shui
2bd4671ddd
Only set insertTextFormat to Snippet when we have placeholders
2017-12-05 09:47:33 -08:00
Jacob Dufault
dbeb4eb511
Reformat
2017-12-05 08:24:37 -08:00
Jacob Dufault
905a4ab2b1
Make IpcId::Exit handled as a message.
2017-12-05 00:21:19 -08:00