Commit Graph

825 Commits

Author SHA1 Message Date
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
9b9740f421 Reduce the number of travis configurations.
Hopefully this will make it run faster.
2017-12-18 16:57:31 -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
Fangrui Song
0cf54f3557 [waf] Fix ./waf configure --bundled-clang=5.0.0 2017-12-18 13:30:57 -08:00
Jacob Dufault
002d32c8a0 Fix broken auto-resource-dir detection 2017-12-18 11:47:58 -08:00
Joel Hock
934c20312a set rpath for mac when --use-system-clang 2017-12-17 21:18:38 -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
Fangrui Song
0a8ea0e51f Honor environment variable CXXFLAGS and tweak README (#153)
Also loosen rsync `-a` option to `-rt`
2017-12-16 19:39:51 -08:00
DaanDeMeyer
97da6c937a Remove sparsehash from wscript 2017-12-16 09:39:36 -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
Fangrui Song
ea5c89e956 [waf] Use {str,bytes}.decode to make it compatible with Python 2/3 2017-12-14 21:35:25 -08:00
Fangrui Song
044ef0b309 [waf] Install resource dir to $PREFIX (#139) 2017-12-14 17:45:15 -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
d8b47ebdd4 [waf] Use RPATH $ORIGIN on FreeBSD/Linux and copy libclang.so.[4-9] to $PREFIX/lib/clang+llvm*/lib/ (#133)
Also copy build/release/lib/clang+llvm-5.0.0-linux-x86_64-ubuntu14.04/lib/clang/5.0.0/include/* to $PREFIX/lib/clang+llvm*/resource-dir/include/
2017-12-13 10:53:42 -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
Jacob Dufault
48a7ec73eb Add index test for #131 2017-12-12 00:27:25 -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
33c3d99925 Small readme tweaks 2017-12-12 00:11:46 -08:00
Jacob Dufault
1ce881f9f3 Update compile_commands.json symlink to point to build/release 2017-12-12 00:10:20 -08:00
Fangrui Song
cb633541e2 Change default path of built executable from build/app to build/release/bin/cquery (installed to $PREFIX/bin/cquery)
This is incompatible, please change your editor configuration:

* LanguageClient-neovim: g:LanguageClient_serverCommands
* Emacs cquery.el: cquery-executable
* VSCode: cquery.launch.workingDirectory cquery.launch.command
2017-12-12 00:07:38 -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
Jacob Dufault
7a42f3f393 Add test for lambda 2017-12-11 21:10:26 -08:00
Jacob Dufault
1dc7087f21 Update tests 2017-12-11 21:07:12 -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
60febe6e9d [waf] Add --variant={debug,release} (#129)
./waf build => build/app
./waf build --variant=debug => build/debug/app
./waf build --variant=release => build/release/app

TODO Make --variant default to 'release', rename `app` to `bin/cquery`, and disallow empty variant
2017-12-11 20:36:53 -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
0aa832a48c travis: Disable cache; broken build 2017-12-07 14:34:11 -08:00
Jacob Dufault
4a7ca6168f Reformat 2017-12-07 11:54:51 -08:00
Jacob Dufault
d8d794fb4e travis: Cache clang download 2017-12-07 11:54:51 -08:00