Jacob Dufault
3228619414
Small fixes to auto-include and auto-implement fixits.
2017-06-28 21:40:30 -07:00
Jacob Dufault
25d450cf8b
Always include literal completions
2017-06-28 21:33:52 -07:00
Jacob Dufault
706479aded
Completion changes (maybe fix some crashes)
2017-06-28 19:50:30 -07:00
Jacob Dufault
a005cc627d
Generate diagnostics when indexing a file, even if non-interactive.
2017-06-19 18:52:25 -07:00
Jacob Dufault
491e7b4625
Prefer literal string matches in global symbol search
2017-06-19 18:32:19 -07:00
James Cook
5b4986f04b
Fix compiler warnings and turn on warnings as errors
2017-06-19 18:30:44 -07:00
Jacob Dufault
b04ce0c503
Auto-index file on open
2017-06-15 22:56:07 -07:00
Jacob Dufault
bb46b38b1c
Make global symbol search a bit more fuzzy
2017-06-15 19:30:00 -07:00
Jacob Dufault
9d1369786f
Pre-filter completion results before sending to vscode.
...
This results in a less laggy completion experience. Before, vscode would
drop frames if handed too many completions (ie, by typing #include in a
very large project).
2017-06-15 19:28:49 -07:00
Jacob Dufault
99db0a1596
Add some additional code completion logging.
2017-06-14 22:47:41 -07:00
Jacob Dufault
7a71447273
Move some code out of command_line.cc
2017-06-14 22:47:41 -07:00
Jacob Dufault
053aa549f0
Bump extension version.
2017-06-14 00:13:26 -07:00
Jacob Dufault
14009293ba
Fix IPC message e2e hiding
2017-06-13 23:59:40 -07:00
Jacob Dufault
3d0b8fd807
Fix call tree when function ref does not refer to a function.
2017-06-13 23:50:30 -07:00
Jacob Dufault
4bddc95908
Fix possible race when setting diagnostics.
2017-06-13 23:29:41 -07:00
Jacob Dufault
584f7b45b9
Uniqueify include string proposals
2017-06-13 23:09:25 -07:00
Jacob Dufault
8fece6c252
Remove some extra logging
2017-06-13 20:41:30 -07:00
Jacob Dufault
dec484ed0d
Only report diagnostics from code completion document parse.
...
Also use shared_ptr, hopefully fix memory crashes.
2017-06-09 21:13:16 -07:00
Jacob Dufault
c262e1674d
Misc fixes
2017-06-09 18:02:48 -07:00
Jacob Dufault
767b4ac0e1
Small code cleanup
2017-06-09 00:08:06 -07:00
Jacob Dufault
1fc2d2756e
Don't show output when there is an error. Force extension update.
2017-06-08 23:26:04 -07:00
Jacob Dufault
c40df5c0e5
Provide code action to auto-include an undefined symbol.
2017-05-29 16:57:19 -07:00
Jacob Dufault
f5efa02448
Clear diagnostics for open files.
2017-05-29 16:33:57 -07:00
Jacob Dufault
d834d4db08
Provide code action to auto-implement methods (useful for classes or function declarations).
2017-05-29 14:18:35 -07:00
Jacob Dufault
968b6c0966
Remove HasInterestingState().
...
These don't serve any real purpose since the multi-file indexer tests.
2017-05-27 00:47:03 -07:00
Jacob Dufault
79a4d8ad79
Proper error reporting when request fails due to missing file.
2017-05-27 00:10:21 -07:00
Jacob Dufault
385531521f
Harden against bad language server method call in completion.
2017-05-26 23:51:32 -07:00
Jacob Dufault
d816e2618a
Some renames, promote view completion sessions to edit sessions
2017-05-26 21:21:00 -07:00
Jacob Dufault
7840b7a015
Cache global completion results.
2017-05-26 00:10:55 -07:00
Jacob Dufault
cdc268d549
Preload code completion, maintain LRU cache for multiple completion files.
2017-05-25 23:40:38 -07:00
Jacob Dufault
2e3e1e0427
Refactor quote extraction
2017-05-25 21:26:35 -07:00
Jacob Dufault
f5ed2828c3
Fix code lens sometimes appearing on "};"
2017-05-25 21:09:10 -07:00
Jacob Dufault
8bbd9b7694
Revert change to use CXTranslationUnit_Incomplete when indexing. It broke tests.
2017-05-24 20:06:05 -07:00
Jacob Dufault
32940e2c88
Experiment with caching CXIndex across multiple sessions
2017-05-24 19:04:19 -07:00
Jacob Dufault
97832f2a73
Add call tree and full type hierarchy using upcoming vscode tree API
2017-05-24 00:17:29 -07:00
Jacob Dufault
1598129d8b
Fix file finding on windows when path case changes.
2017-05-22 00:14:11 -07:00
Jacob Dufault
da6a8f335f
Only delta update on file save if the file is already imported.
2017-05-21 23:18:38 -07:00
Jacob Dufault
639bf8a431
Show error message when regex parsing fails.
2017-05-21 22:54:27 -07:00
Jacob Dufault
c66c927c1f
Fix some more warnings from clang
2017-05-21 16:48:21 -07:00
Jacob Dufault
8910d0a13e
Fix warnings (almost all numeric cast-related)
2017-05-21 16:22:00 -07:00
Jacob Dufault
e182ac12ae
Elide long include path proposals
2017-05-21 14:01:52 -07:00
Jacob Dufault
864ff122d8
Scan include directories for include completion candidates.
2017-05-21 12:51:15 -07:00
Jacob Dufault
94bd6fc301
Add #include auto-complete.
2017-05-21 00:37:53 -07:00
Jacob Dufault
7a79532fff
Report document links on includes
2017-05-20 21:30:59 -07:00
Jacob Dufault
41e1dff4c9
Goto definition for includes
2017-05-20 20:47:20 -07:00
Jacob Dufault
d3bd31604e
Code lens improvements
...
- Hide declaration from list of refs on types and variables (so now they will show as '0 refs')
- Let the user hide code lens on parameter and function-local variables
2017-05-20 18:26:50 -07:00
Jacob Dufault
b79b98f464
Darken/fade code disabled by preprocessor.
2017-05-20 14:45:46 -07:00
Jacob Dufault
f3d00dea23
Implement code actions using clang FixIts
...
- Also make server check client version and show an error message if they do not match.
2017-05-20 12:31:07 -07:00
Jacob Dufault
440c6c5325
Small code cleanup
2017-05-20 01:23:01 -07:00
Jacob Dufault
b258f2dd0b
Cache signature completion as well.
...
- Also check file path when validating completion cache.
2017-05-20 01:20:37 -07:00
Jacob Dufault
9d3187a06c
Don't bother saving if we reported diagnostics.
...
Always report if file has diagnostics, always report if file is interactive.
2017-05-20 01:07:54 -07:00
Jacob Dufault
29845cc1e3
Cache code completion results for backspace character.
2017-05-20 01:07:29 -07:00
Jacob Dufault
b3d5327342
Real-time diagnostics via clang_codeCompleteAt
2017-05-19 23:35:14 -07:00
Jacob Dufault
00143bef8e
Log index updates before applying them
2017-05-19 00:02:01 -07:00
Jacob Dufault
f9787f83d8
Don't serialize diagnostics
2017-05-18 22:44:23 -07:00
Jacob Dufault
2b407e0bce
Basic performance data tracking during indexing
2017-05-17 00:08:45 -07:00
Jacob Dufault
59a077d8a9
Fix race condition when saving indexed file contents to cache.
2017-05-16 23:01:51 -07:00
Jacob Dufault
671a54c7af
Move most of the information in document outline to containerName. This makes searching nicer.
2017-05-16 00:45:46 -07:00
Jacob Dufault
f907d1d1b9
When indexing make sure we use the correct contents.
...
Hopefully this will make overlapping saves more robust.
2017-05-16 00:38:15 -07:00
Jacob Dufault
d8567c75cc
More robust approach for tracking indexed file.
2017-05-16 00:26:26 -07:00
Jacob Dufault
b727fc5a36
Fix signature help for calls prefixed by a namespace
2017-05-15 00:37:47 -07:00
Jacob Dufault
3001faf9a8
Signature help and snippets for code completion
2017-05-15 00:29:22 -07:00
Jacob Dufault
ff421723a5
Renames and fix some operator < implementations
2017-05-11 23:08:15 -07:00
Jacob Dufault
61aaf4509c
Fix PriorityEnqueue; use it when saving a file so index results come in faster for actively edited files.
2017-05-11 00:41:27 -07:00
Jacob Dufault
4c487ab797
Reparse document after save for code completion, but don't drop existing completion state until after reparse is done.
2017-05-10 23:25:41 -07:00
Jacob Dufault
20429ed397
Clear diagnostics if previously reported
2017-05-10 18:44:39 -07:00
Jacob Dufault
202ab60ede
Added diagnostics.
2017-05-09 23:13:13 -07:00
Jacob Dufault
1083a10a66
Fix some threading bugs with code completion
2017-05-09 21:52:15 -07:00
Jacob Dufault
8ed20567a1
Only allow one active index request per file when actively editing.
2017-05-08 22:09:57 -07:00
Jacob Dufault
ad0a03b0da
Split global usr lookup into separate lookups for file/type/func/var.
...
This eliminates problems when actively editing code, ie, a USR can change from being a variable to being a type.
2017-05-08 21:20:28 -07:00
Jacob Dufault
d1287f8fc8
Fix crash when trying to load cache that does not exist
2017-05-08 18:21:21 -07:00
Jacob Dufault
5524abdaa7
Support keyboard shortcuts for vars, callers, base, and derived.
2017-05-06 23:56:04 -07:00
Jacob Dufault
fc55589ed3
Infer arguments for files not in the project.
2017-05-06 22:36:29 -07:00
Jacob Dufault
1b4f377682
WIP but basic test e2e test running
2017-05-02 23:45:10 -07:00
Jacob Dufault
49c687663e
Rework some of the command line flag parsing logic. Hopefully make it more robust.
2017-04-25 21:03:22 -07:00
Jacob Dufault
c77531a432
Log initialization options, reactivate working file asserts.
2017-04-25 19:57:36 -07:00
Jacob Dufault
592ef1c3cf
Better code completion trigger characters.
2017-04-23 18:52:38 -07:00
Jacob Dufault
526fefaf09
Don't rename '.' to '_' in cache files.
...
This makes it easier to browse cached cc/etc files.
Also clean up logging a bit.
2017-04-23 18:24:09 -07:00
Jacob Dufault
91b5614c7e
Optimize import pipeline.
...
Previous implementation was slower at reindexing if loading from cache because primary cc files would be reindexed for every dependency that changed.
2017-04-23 18:01:51 -07:00
Jacob Dufault
1b2f5896dc
Use condition variables instead of sleeping.
...
While tricky to do because we have multiple queues, this reduces a lot of unnecessary delay. e2e time goes down from 10-15ms on average to 0-3ms on average. Loading from cache is also nearly instant on the cquery codebase.
2017-04-23 15:45:40 -07:00
Jacob Dufault
63908e3aa0
Renames
2017-04-23 14:24:06 -07:00
Jacob Dufault
7741991b72
Simplify threading model a bit.
2017-04-23 13:19:09 -07:00
Jacob Dufault
4f57b711bb
Remove some unused code
2017-04-23 13:02:41 -07:00
Jacob Dufault
967529f6ee
Remove support for out of process.
...
Eventually out of process will be reintroduced, but at a different level. The actual indexer/querydb will all run in-process. We will run the clang index out of process (and block the indexer thread while running).
2017-04-23 12:45:58 -07:00
Jacob Dufault
278eb0cd77
Better support for removing data from querydb
2017-04-22 00:43:48 -07:00
Jacob Dufault
44296471b9
Fix indexerCount evaluation
2017-04-22 00:43:48 -07:00
Jacob Dufault
406a2ec3fd
Add end-to-end performance reporting.
...
This lets us know exactly how long it took to run a particular request method, including internal message queue delays, etc.
2017-04-21 00:46:51 -07:00
Jacob Dufault
bb25640d91
Rename instantiations to instances.
2017-04-21 00:03:33 -07:00
Jacob Dufault
bdd433abd4
Fix vscode complaining about overlapping text edits for rename
2017-04-20 23:56:42 -07:00
Jacob Dufault
5ef4f55053
Fix code lens for variable instantiations
2017-04-20 23:46:53 -07:00
Jacob Dufault
11d6623938
Update WorkingFile indexed content correctly.
...
We copy the file contents we indexed over to the index cache folder. Then we load those file contents into the WorkingFile instance as needed.
This means code lens should never get out of sync, as the index buffer cache will always be correct.
2017-04-20 23:32:18 -07:00
Jacob Dufault
16dc2971a6
Automatically compute a good value for number of indexer threads to start.
2017-04-20 22:16:52 -07:00
Jacob Dufault
145bf87d70
Add 'cquery: Freshen Index' command.
...
This validates every file is indexed to its current state. It is very useful after, ie, a git checkout.
2017-04-20 21:50:31 -07:00
Jacob Dufault
ead75bb7a3
Force ctor usage on Index_DoIndex
2017-04-20 21:09:54 -07:00
Jacob Dufault
14b47de1db
Cleanup import pipeline, store arguments in indexed file.
...
We no longer store any runtime state (ie, file arguments) in project.cc; we store it and then query it from the cached index file.
2017-04-20 21:06:15 -07:00
Jacob Dufault
d1fe600fcf
Better goto-definition on constructors.
2017-04-20 17:27:21 -07:00
Jacob Dufault
7326b861ac
Simplify dependency management when updating index for a file.
2017-04-20 01:05:19 -07:00
Jacob Dufault
1f6da81009
Preserve dependencies across multiple index runs.
2017-04-20 00:53:33 -07:00
Jacob Dufault
4d9567a0c2
Fix reindexing for header files
2017-04-20 00:25:38 -07:00
Jacob Dufault
9338bcfd0e
Improvements to loading project.
...
- Don't reindex the file if the modification time has not changed.
- Import file dependencies before importing other files, which might be a full-on index operation.
2017-04-19 22:46:10 -07:00