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
Jacob Dufault
61b0cfb114
Don't emit ipc timings for cout messages.
2017-10-28 14:33:33 -07:00
Jacob Dufault
b9f72377dd
Fix inactive region publishing when editing a file.
2017-10-28 14:31:54 -07:00
Jacob Dufault
235987bb58
Show progress indicator in status area
2017-10-25 00:12:11 -07:00
Jacob Dufault
39de197e8a
Only target 80% of threads for indexers by default.
...
Using 100% - 1 tended to cause too much resource contention.
2017-10-24 19:18:47 -07:00
Jacob Dufault
37ab94e7b4
Add GetWorkingDirectory for linux
2017-10-24 19:11:11 -07:00
Jacob Dufault
ccff74a79c
Fix performance regression in loading compile_commands.json
...
Regression was caused by accidental copying.
2017-10-24 19:00:29 -07:00
Jacob Dufault
738b338d47
Emit timings for project loading
2017-10-24 18:39:44 -07:00
Jacob Dufault
f698a3451f
Update comment in utils.cc
2017-10-24 18:28:23 -07:00
Jacob Dufault
93d3b2b3cb
Change whitelist behavior so it is more likely what the user wants.
2017-10-24 18:09:02 -07:00
Jacob Dufault
58f2107714
Inject -resource-dir automatically.
2017-10-24 18:02:15 -07:00
Jacob Dufault
0d091b69cf
Minor style fix
2017-10-23 08:39:33 -07:00
Jacob Dufault
d145bcebc5
Fix completion issue where completing dropped completion session.
2017-10-23 08:38:01 -07:00
Jacob Dufault
f0e9434163
Add start/pause to Timer
2017-10-23 08:04:43 -07:00
Jacob Dufault
76cc110cc2
Simplify completion session management code.
2017-10-23 00:28:21 -07:00
Jacob Dufault
3e9cffcc62
Cleanup clang::TranslationUnit API so callers have to handle failures.
2017-10-22 22:07:50 -07:00
Jacob Dufault
9429dff63a
Try to only ever have one completion session per file.
2017-10-22 21:49:17 -07:00
Jacob Dufault
a155f5b686
Fix a bunch of bugs in argument handling and address some TODOs
2017-10-18 01:24:52 -07:00
Jacob Dufault
0e7c8bdf05
Fix argument handling for chrome
2017-10-18 00:02:33 -07:00
Jacob Dufault
3003385d76
Update clang argument parsing
2017-10-17 23:23:07 -07:00
Jacob Dufault
a6807dcb8c
Remove issue where diagnostics would disappear file saves.
...
Also allow rebuilding of completion session by closing and reopening a
file.
2017-10-17 11:43:33 -07:00
Jacob Dufault
809a55a351
When erasing a USR only erase def data.
...
This should hopefully fix some bad indexes. It is possible that a def is temporarily deleted. In that case, we don't want to nuke all of the callers/etc so that if the def is restored we still have that information.
If the def is actually erased it the normal IndexUpdate remove logic will eventually purge the extra state outside of just the def (ie, callers).
2017-10-16 22:45:26 -07:00
Jacob Dufault
272e23901c
Handle missing cached dependencies better
2017-10-12 08:41:03 -07:00
Jacob Dufault
4364a37d76
Increase max completion sessions
2017-10-12 08:41:03 -07:00
Jacob Dufault
6704049e13
Disable real-time indexing.
...
It adds a bit too much latency to code completion. I suspect this can
be removed by running real-time indexing in a separate thread (though
this will require a dedicated CXTranslationUnit instance).
2017-09-27 13:44:54 -07:00
Jacob Dufault
7531a0b4e5
Real-time indexing as you type.
2017-09-26 23:03:43 -07:00
Jacob Dufault
80df5beee5
Fix code completion isIncomplete handling.
...
isIncomplete would not be set to true when there was no filter text but we elided entries.
2017-09-26 21:44:56 -07:00
Jacob Dufault
084d5c8d91
Fix two TODOs
2017-09-26 21:40:47 -07:00
Jacob Dufault
d57ecff497
Disable not sending isIncomplete optimization
2017-09-25 14:33:28 -07:00
Jacob Dufault
145975df6b
Fix some issues in import pipeline.
2017-09-23 17:36:28 -07:00
Jacob Dufault
87394de1cf
Handle error condition instead of asserting, since it is occassionaly hit.
...
This needs to be debugged later.
2017-09-22 00:39:59 -07:00
Jacob Dufault
6b0c3831fa
Add project parsing test
2017-09-21 23:50:27 -07:00
Jacob Dufault
511bbbe391
Add TODO
2017-09-21 23:48:05 -07:00
Jacob Dufault
bd8582e718
A bit more code cleanup in project.cc
2017-09-21 20:09:11 -07:00
Jacob Dufault
a96be1d6e5
Cleanup how include directories are passed around in project.
2017-09-21 20:02:48 -07:00
Jacob Dufault
5704ef5077
Cleanup completion logging. Also don't mark isIncomplete for completion results as aggressively.
2017-09-21 19:45:17 -07:00
Jacob Dufault
772f547065
Update diagnostics on document change, not code completion.
...
This also changes the API used for reporting diagnostics, which will hopefully be more reliable. This requires reparsing the document, though, so it is much slower. We do this after reporting code completion though, so hopefully the performance delay is not too noticable.
2017-09-21 19:25:33 -07:00
Jacob Dufault
1df8fd7c7a
Remove some static_casts.
2017-09-21 18:32:55 -07:00
Jacob Dufault
772df3e92a
Move InsertSymbolIntoResult into query_utils.cc
2017-09-21 18:18:24 -07:00
Jacob Dufault
f5314b62b1
Reformat to Chromium style.
2017-09-21 18:14:57 -07:00
Jacob Dufault
1b1be28be4
Log files joined in IndexFile merges.
2017-09-21 17:59:46 -07:00
Jacob Dufault
ba7461fc24
Fix dependency scanning on import.
...
The same dependency would cause multiple translation units to get reindexed.
2017-09-19 22:08:17 -07:00
Jacob Dufault
a06f730958
Better logging, add notes about a bug.
2017-09-14 00:22:06 -07:00
Jacob Dufault
d6a8071da4
Be more aggressive about only indexing files once.
...
This should help fix perf regressions with long import times after syncing.
2017-09-13 23:39:32 -07:00
Jacob Dufault
036c2819f1
Add some whitespace
2017-09-13 22:18:15 -07:00
Jacob Dufault
cd58eafd90
Simplify import dedup by allowing indexer to reparse the same document concurrently. Removes a critical section simplifies the code.
...
Instead we dedup the imports between creating an id map and applying the update.
2017-09-13 21:51:39 -07:00
Jacob Dufault
104cfd167c
Fix linux build
2017-09-13 10:53:13 -07:00
Jacob Dufault
d9143f065d
Fix indexer crash when indexing MSVC STL.
2017-09-12 22:51:13 -07:00
Jacob Dufault
17565f9a14
Make some good progress on e2e tests.
2017-09-12 20:35:53 -07:00
Jacob Dufault
6cdb7c66e1
Remove unused function
2017-08-18 10:26:05 -07:00
Jacob Dufault
3f44307268
Call malloc_trim(0) on Linux
2017-08-17 11:02:47 -07:00
Jacob Dufault
2328141d98
Fix clang compile
2017-08-16 22:17:24 -07:00
Jacob Dufault
b1d9602682
Dedup import requests, show diagnostics on interactive indexes, priority index file when opening it
2017-08-16 20:39:00 -07:00
Jacob Dufault
58fbd04142
Add ThreadedQueue::EnqueueAll to reduce lock contention.
2017-08-16 19:14:54 -07:00
Jacob Dufault
28ddc9f346
Re-enable anonymous namespace in command_line.cc
2017-08-16 19:08:00 -07:00
Jacob Dufault
4245bac1db
Make import pipeline a bit more flexible w.r.t. writing indexed content to disk.
2017-08-16 19:06:28 -07:00
Jacob Dufault
d5bdf8ce0a
Rename/cleanups
2017-08-15 22:45:42 -07:00
Jacob Dufault
7901653698
Make sure file exists before importing it.
2017-08-15 22:39:50 -07:00
Jacob Dufault
49aca3038b
Cache timestamps when importing, which improves import time by 5x on windows.
...
cquery import goes from 2.5s to 0.5s
2017-08-15 20:54:59 -07:00
Jacob Dufault
274c98f032
Fix import pipeline stall due to blocking Deqeue call.
2017-08-15 20:29:49 -07:00
Jacob Dufault
81594a1497
Fix LoadCachedIndex crash if deserialization failed.
2017-08-15 20:29:09 -07:00
Jacob Dufault
7faedfdf00
Do not import empty dependencies
2017-08-15 20:28:52 -07:00
Jacob Dufault
3ab4d0455d
Fix delta update.
...
Previous file was being loaded after the current file is written to disk.
2017-08-15 00:46:21 -07:00
Jacob Dufault
59851c06e0
More import pipeline simplifications.
...
Move already-import dependency checking to a separate stage.
2017-08-15 00:22:13 -07:00
Jacob Dufault
5a451d3ad1
Remove some additional overhead created for out of process
2017-08-14 22:53:44 -07:00
Jacob Dufault
db9a97d586
Remove out of process indexer support.
...
malloc_trim does a good enough job that we don't need it anymore.
2017-08-14 19:07:46 -07:00
Jacob Dufault
ee003a2cf0
Log when we are doing delta updates
2017-08-05 15:44:44 -07:00
Jacob Dufault
5b69c5bfc5
Small cleanup
2017-08-01 20:40:30 -07:00
Jacob Dufault
cac5dcaf8f
Simplify queue management
2017-08-01 20:23:37 -07:00
Jacob Dufault
c89f651cd8
More iteration on task system
2017-08-01 20:23:06 -07:00
Jacob Dufault
b9061ccc07
WIP task system
2017-08-01 01:24:06 -07:00
Jacob Dufault
50a726f59e
Simplify Index_OnIdMapped
2017-07-30 11:49:24 -07:00
Jacob Dufault
1f3f69b221
Reuse loaded file contents in indexer; clear large state before caching.
2017-07-30 11:31:41 -07:00
Jacob Dufault
85f3c00376
Some more small cleanup
2017-07-30 00:16:08 -07:00
Jacob Dufault
6d9e4242d1
Use shared_ptr, try to fix a crash.
2017-07-29 23:51:32 -07:00
Jacob Dufault
e771f05f3f
Linux build fixes
2017-07-29 21:46:21 -07:00
Jacob Dufault
ee20d79dcc
wip
2017-07-29 21:24:02 -07:00
Jacob Dufault
c83b9eab77
Fix issue when buffer contents do not get synced properly near start of file
2017-07-29 21:13:22 -07:00
Jacob Dufault
2a1ce80b4d
Change perf logs to use LOG_S
2017-07-29 17:45:00 -07:00
Jacob Dufault
6518f8b79a
Add tiny-process-library
2017-07-29 17:44:32 -07:00
Jacob Dufault
a9bac06b83
Add MoveFileTo
2017-07-28 17:08:18 -07:00
Jacob Dufault
ea5508a699
Perf can now be serialized
2017-07-28 17:08:04 -07:00
Jacob Dufault
cf8b95809f
Hide error messages when scanning a directory and file open fails
2017-07-28 17:07:50 -07:00
Jacob Dufault
7b052d887d
Add DequeuePlusAction
2017-07-28 17:07:27 -07:00
Jacob Dufault
c37396a36d
First pass at logging using loguru
2017-07-27 19:14:46 -07:00