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
Jacob Dufault
c596e55dcc
Cleanup some includes.
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
Fangrui Song
34052fbf27
[indexer] Index some references in ClassTemplate
2017-12-28 10:53:13 -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
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
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
b8e7a5bcb3
Format code
2017-12-27 07:54:46 -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
scturtle
cb7ccbe543
Change var.def.is_* to enum.
2017-12-23 19:29:32 -06: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
fd7c01796c
Do not include path in lambda detail/hover string
2017-12-22 08:59:37 -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
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
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
be961fc4f2
Add hover (instead of reusing detailed_name)
2017-12-18 21:20:00 -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
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
Fangrui Song
9fd35db034
[indexer] Index references to system headers
2017-12-17 21:16:40 -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
Walter Erquinigo
5238c50027
objc
2017-12-15 12:02:32 -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
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
Fangrui Song
fb902a29b7
Add missing definition and reference info to lambda paramaters. fix #120
2017-12-11 21:06:55 -08:00