Commit Graph

581 Commits

Author SHA1 Message Date
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
Jacob Dufault
3599a831b1 Introduce MessageHandler abstraction. Mainly just code reorg.
Only the initialize request uses it so far, but this will enable pulling
quite a bit of code out of command_line.cc.
2017-12-04 23:57:41 -08:00
Fangrui Song
8b5d9d33ab Fix LruCache when next_score overflows 2017-12-04 14:47:14 -08:00
Jacob Dufault
4a7194d2df Remove unused variable 2017-12-04 09:18:29 -08:00
Jacob Dufault
eb8a1ee570 Fix clang build 2017-12-04 07:13:33 -08:00
Jacob Dufault
0f3680866e Make missing clientVersion skip check 2017-12-04 00:29:38 -08:00
Jacob Dufault
670c925204 Remove Ipc_Cout; rename IpcId::Cout to IpcId::Unknown. 2017-12-04 00:16:19 -08:00
Jacob Dufault
6c5f1d9c88 Simplify IpcManager.
It no longer supports multi-process IPC; remove some of the extra code that was used to support that.
2017-12-04 00:13:35 -08:00
Jacob Dufault
b64b8b5493 Fix clang build 2017-12-03 22:49:50 -08:00
Jacob Dufault
9a64fb0747 Fix broken build (add lru_cache.h) 2017-12-03 19:24:42 -08:00
Jacob Dufault
b2736f8822 Semantic highlighting improvements.
- Semantic highlighting no longer disappears when switching between
files.
- Semantic highlighting for a symbol will remain stable as the file is
edited.
- Improved semantic highlighting colors.

Progress indicator also now shows the number of remaining index jobs
(not the total number).
2017-12-03 18:25:21 -08:00
Jacob Dufault
9e6d33689f Trim lines when reading from .cquery file.
Otherwise there may be newlines and the like.
2017-12-03 18:25:21 -08:00
Jacob Dufault
ab7ffa302a Add $cquery/textDocumentDidView.
This allows for more stable semantic highlighting, among other potential features. Requires custom support from the client, though.
2017-12-03 18:25:21 -08:00
Fangrui Song
697968b15f Group cache files by projectRoot 2017-12-03 16:00:49 -08:00
Josh Elsasser
82643dc79d Ensure that paths passed to libclang are fully expanded
- "-include" arguments must have their paths resolved
- clang_resource_dir must have its path resolved
2017-12-03 12:53:05 -08:00
Jacob Dufault
ee5ea91c1f Reduce test clang arg set. 2017-12-01 17:11:27 -08:00
Jacob Dufault
5d1fd4ce4d Remove a bunch of std::cerr in favor of LOG_S 2017-12-01 17:04:39 -08:00
Jacob Dufault
cf5f465e9e Add -Wno-unknown-warning-option 2017-12-01 10:11:09 -08:00
Jacob Dufault
b727e36afc Move cleanup_maybe_relative_path to top of func in project.cc 2017-12-01 09:59:28 -08:00
Jacob Dufault
fa240e3132 Small code cleanup in src/indexer.cc. 2017-12-01 09:57:03 -08:00
Jacob Dufault
9b44bf7901 Run ./format.sh 2017-12-01 09:55:41 -08:00
Jacob Dufault
066166ba40 Add --clang-sanity-check.
Does a simple index test to verify expected libclang API behavior.
2017-12-01 09:46:40 -08:00
Jacob Dufault
2a2794da23 Also log arguments when failing to create a translation unit 2017-12-01 09:46:40 -08:00
topisani
ab6c5f0515 Emit semantic highlighting for types 2017-12-01 09:42:22 -08:00
topisani
c4ada3e9df Don't highlight operators as functions (#104)
* Don't highlight operators as functions

* address comments
2017-12-01 17:08:19 +01:00
topisani
63d2b5fa10 nitpick fixing 2017-11-30 14:12:41 -08:00
topisani
4e153784f6 Index language as enum instead of string 2017-11-30 14:12:41 -08:00
topisani
e6bcd05a7e markdown compliant language identifiers 2017-11-30 14:12:41 -08:00
topisani
28ad5b1ed1 Index file language and send it on hover 2017-11-30 14:12:41 -08:00
Fangrui Song
eac644d81a On *nix, use a realpath(3) variant (which does not expand symlinks) in NormalizePath
Before this commit, when a source file is a symlink, cquery is not able to serve LSP requests for it.
2017-11-30 11:27:26 -08:00
Jacob Dufault
38ff70ebc3 Disable serialization of clang_parseTranslationUnit2FullArgv 2017-11-29 20:23:34 -08:00
Jacob Dufault
f4acde7588 Add --log-stdin-stdout-to-stderr
Prints messages received and stdin/stdout to stderr. Useful when developing a new client that uses cquery as the backend.
2017-11-29 20:22:10 -08:00
Jacob Dufault
f1f2cc3bd1 Serialize clang_parseTranslationUnit2FullArgv requests.
Also try to emit diagnostics when translation unit creation fails.
2017-11-29 19:53:07 -08:00
Jacob Dufault
aeab1a0b79 Fix MSVC builds 2017-11-29 19:18:58 -08:00
Jacob Dufault
e421f86bfa Try to make index tests more platform independent 2017-11-29 19:18:25 -08:00
Jacob Dufault
76c07f3cc6 Additional improvements to automatic index test updates. 2017-11-29 19:09:11 -08:00
Jacob Dufault
68f6d34693 Only wait when running index tests on windows. 2017-11-29 19:09:10 -08:00
Jacob Dufault
f6f88cc788 Better logging in when iterating files. 2017-11-29 19:09:10 -08:00
Jacob Dufault
f84945fb51 Make SafeGetLine work the same across different file-ending styles. 2017-11-29 19:09:10 -08:00
nobody
c7ef44ad53 Fix hang during reading from stdin
I experienced this hang problem when using cquery with
LanguageClient-neovim.

Sometimes std::cout would hang because the pipe is full, which would
normally be fine, since the client would read from the pipe soon.
However, in this case the client is blocking on a write(). This
shouldn't happen, because cquery has a stdin thread which constantly
reads from stdin. But, in C++, cin and cout are tied streams. Reading
from cin would cause cout to flush, which cause the read to block.

So, cquery can't write because the client doesn't read, the client won't
read before it finishes writing. It can't finish writing because cquery
can't read, and cquery can't read because cquery can't write. Which is a
deadlock.

The solution is to simply untie cin and cout.
2017-11-28 13:58:11 -05:00
Fangrui Song
87f6452b5d Rename clang_args to .cquery 2017-11-27 12:31:54 -05:00
Jacob Dufault
d5951c0e69 Revert "Specify nullptr for source_filename in clang_parseTranslationUnit2 so that we do not need to strip main source filename from args"
This reverts commit 6adc3a28c39a5f6b58a0a57bfae83916051c19f8.
2017-11-27 08:20:42 -08:00
Fangrui Song
2b54296992 Specify nullptr for source_filename in clang_parseTranslationUnit2 so that we do not need to strip main source filename from args 2017-11-27 11:13:07 -05:00
Fangrui Song
bf2aaf470e Use clang_getCursorKindSpelling 2017-11-27 11:11:21 -05:00
Josh Elsasser
76785105ed Add an option to disable EmitProgress methods during indexing 2017-11-26 19:50:57 -05:00
Peter Elmers
750cc4ea30 Respond to comment 2017-11-26 12:12:59 -05:00
Peter Elmers
3341b1f13d Only replace text if both rangeLength and range are not set 2017-11-26 12:12:59 -05:00
Walter Erquinigo
31d7423490 Rebuild vscode plugin and fix some naming 2017-11-26 12:11:09 -05:00
Walter Erquinigo
3cee3cb775 Support an optional compilation database dir at initialization 2017-11-26 12:11:09 -05:00
Peter Elmers
6f6cd4ea7f Give default value to compileCommandsDirectory 2017-11-26 12:11:09 -05:00
Peter Elmers
b7059e69d7 Add compileCommandsDirectory to config struct 2017-11-26 12:11:09 -05:00
Fangrui Song
dba27c3d34 Catch ios_base::failure exceptions in ReadContent
`filename` may be a directory (the latest Emacs lsp-mode sometimes sends a `textDocument/didOpen` message with an empty filename) or the file cannot be read.
2017-11-22 11:35:46 -05:00
Jacob Dufault
626f7bc736 Use compile_commands.json in root directory in favor of clang_args 2017-11-19 18:52:09 -08:00
Jacob Dufault
6a23c5bace Enable path in args test 2017-11-19 15:46:02 -08:00
Fangrui Song
fb38537f20 Strip main source filename if it is a relative path in GetCompilationEntryFromCompileCommandEntry 2017-11-19 18:30:27 -05:00
Daan De Meyer
de1de3e51a Remove .vscode directories from the repository and add .vscode
to the .gitignore
2017-11-19 18:09:32 -05:00
Jacob Dufault
261b04a131 Update test once more 2017-11-19 14:48:26 -08:00
Jacob Dufault
475cd6b668 Add failing test for issue #42 2017-11-19 14:46:05 -08:00
Jacob Dufault
5f73c7efac Allow running unit and index tests separately 2017-11-19 14:35:16 -08:00
Jacob Dufault
97417ecc93 Reformat code 2017-11-19 14:11:54 -08:00
Fangrui Song
297ed1d13e Use indented TEST_SUITE 2017-11-19 14:13:11 -05:00
Daan De Meyer
5842dd5d60 Add option to disable insertion of snippets when completing a method/function call. 2017-11-19 10:30:29 -05:00
Fangrui Song
49559402cf Add a virtual destructor for ThreadedQueue 2017-11-19 01:16:32 -05:00
Peter Goodman
3f45c05476 This commit fixes severak compiler errors when trying to build cquery. I gave up after a bit and didn't fix them all though, there are a ton of signed to unsigned comparisons. 2017-11-18 16:09:14 -05:00
Jacob Dufault
0376da015f Try to always log when exiting. 2017-11-18 11:02:09 -08:00
Jacob Dufault
6a50c48aaa Formatting and a TODO 2017-11-18 09:29:48 -08:00
Jacob Dufault
eea8a1b07a Try to avoid crashing when deserializing JSON 2017-11-18 09:27:37 -08:00
Jacob Dufault
7b0d2d7bf2 Make sure to send initialize response before status updates 2017-11-17 13:31:48 -08:00
Abhinav Gauniyal
27a00d7ad3 Update command_line.cc, fixes #14
- error: lambda capture 'working_files' is not used
 - error: lambda capture 'config' is not used
2017-11-17 07:35:15 -08:00
Christian Pehle
c7c6a8ed39 Fix build on macOS #20 2017-11-17 07:34:09 -08:00
Jacob Dufault
42f744ba29 Remove some unused code. 2017-11-11 11:43:55 -08:00
Jacob Dufault
601af73ca9 Move all libclangmm/* files into src/* directory 2017-11-11 11:41:09 -08:00
Jacob Dufault
348b4a2e4e Move libclangmm/Cursor.* to clang_cursor.* 2017-11-11 11:31:05 -08:00
Jacob Dufault
5fa7fbf0d2 More improvements to semantic highlighting. Still not done though. 2017-11-11 11:18:55 -08:00
Jacob Dufault
8145a06534 First pass at semantic highlighting.
It is disabled by default.
2017-11-08 23:06:32 -08:00
Jacob Dufault
9d376a47d5 Do not index is_constructor and parameter_type_descriptions. 2017-11-08 19:59:11 -08:00
Jacob Dufault
96894ae996 Index std::make_unique and similar functions as constructor calls. 2017-11-08 19:55:13 -08:00
Jacob Dufault
e7de24764e Increase indexed file version 2017-11-07 01:01:37 -08:00
Jacob Dufault
510594cdcd Add is_constructor to indexer 2017-11-07 01:00:59 -08:00
Jacob Dufault
9cb4008023 Index type description for function parameters. 2017-11-07 00:57:08 -08:00
Jacob Dufault
6d2af96c16 Remove TranslationUnit::document_cursor() 2017-11-04 16:11:52 -07:00
Jacob Dufault
7d549f3fdf Move libclangmm/Utility.h into clang_utils.h 2017-11-04 16:02:39 -07:00
Jacob Dufault
172f9e2e80 Remove tiny-process-library 2017-11-04 15:23:08 -07:00
Jacob Dufault
1f0c1e922f Fix compile_commands.json parsing when filename is absolute.
Some compile_commands.json generators will emit absolute paths for the
filename, such as cmake.
2017-10-31 15:43:27 -07:00
Jacob Dufault
f48f818f4c Fix MacOS build 2017-10-31 15:43:07 -07:00
Jacob Dufault
7734943620 Format all code in src/ 2017-10-31 12:49:19 -07:00
Jacob Dufault
5f04e390a2 Fix threaded_queue 2017-10-31 12:39:02 -07:00
Jacob Dufault
4156be09c1 Fix inactive region after closing/reopening a document.
Also make it a bit more robust.
2017-10-28 15:09:14 -07:00
Jacob Dufault
98c701b217 Fix project loading absolute path normalization for clang_args 2017-10-28 14:51:36 -07:00
Jacob Dufault
82f8133d7e Log to cquery_diagnostics.log instead of cquery.log 2017-10-28 14:51:12 -07:00
Jacob Dufault
c694b56bc1 Reduce some locking in ThreadedQueue for status updates 2017-10-28 14:50:57 -07:00