Commit Graph

208 Commits

Author SHA1 Message Date
Jacob Dufault
d1fe600fcf Better goto-definition on constructors. 2017-04-20 17:27:21 -07:00
Jacob Dufault
2f691e5365 Fix compile error 2017-04-20 17:16:54 -07:00
Jacob Dufault
f25a603708 Implement GetLastModificationTime for linux 2017-04-20 09:47:24 -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
d83b1591a4 Serialized indexes are now versioned. Old versions are not imported. 2017-04-19 23:02:24 -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
Jacob Dufault
2780e18040 CompilationEntry -> Project::Entry 2017-04-19 22:01:36 -07:00
Jacob Dufault
b4fb350140 Include file modification time in index 2017-04-19 21:57:44 -07:00
Jacob Dufault
c60fae5abb Fix import crash 2017-04-19 10:55:54 -07:00
Jacob Dufault
ea045499b6 When looking up symbols map buffer line to index line.
This makes editing experience a bit smoother, as you can goto definition before saving.
2017-04-19 00:52:48 -07:00
Jacob Dufault
20864e422a Fix recursion when loading cache and indexing are both enabled.
Also added config options to disable indexing, disable cache writing, and disable cache reading from settings file.
2017-04-19 00:32:59 -07:00
Jacob Dufault
cbe308c0f9 Try to have better behavior when types are defined across multiple files. 2017-04-18 23:56:37 -07:00
Jacob Dufault
eb83ba26e1 Add sparsepp as a replacement for sparsehash 2017-04-18 22:45:54 -07:00
Jacob Dufault
cd50eb9e35 Positions are now 32 bits (down from 96ish) 2017-04-18 22:38:39 -07:00
Jacob Dufault
95b567838c Remove concept of 'interesting' usage.
It never worked well enough. Showing variable instantations for the type will be more useful.
2017-04-18 22:28:33 -07:00
Jacob Dufault
3ce446d202 Do not output interesting usage. 2017-04-18 21:58:39 -07:00
Jacob Dufault
5b70982c04 Fix permissions when creating files on linux 2017-04-18 21:56:02 -07:00
Jacob Dufault
85734278d8 Misc fixes 2017-04-18 17:05:14 -07:00
Jacob Dufault
2e8e3d29c5 Indexer spelling lookup cannot fail 2017-04-18 16:49:55 -07:00
Jacob Dufault
121336c976 Fix build on OSX, update README.md 2017-04-18 10:21:53 -07:00
Jacob Dufault
c615535d33 vscode settings can now include an additional set of clang arguments to apply. 2017-04-17 21:06:01 -07:00
Jacob Dufault
2b6f4b7cdf Enable configuration of max workspace search results. 2017-04-17 20:54:20 -07:00
Jacob Dufault
c86dd569c1 Enable configuration for the number of indexer threads. 2017-04-17 20:23:52 -07:00
Jacob Dufault
2d4b910836 Allow configuration of cache directory. Use a good default value as well. 2017-04-17 20:02:41 -07:00
Jacob Dufault
26c0bfe71d Misc fixes 2017-04-17 13:40:50 -07:00
Jacob Dufault
7f4d902dcf Add alternative compile_commands.json loader using rapidjson.
It may be faster than clang. I haven't tested it yet.
2017-04-17 00:06:01 -07:00
Jacob Dufault
5e8e13380d First iteration of code completion off the main thread. Still one race condition but hopefully it shouldn't happen too often. 2017-04-16 18:22:59 -07:00
Jacob Dufault
c6dead848e Remove some TODOs, reduce output sleep from 10ms to 2ms 2017-04-16 16:57:31 -07:00
Jacob Dufault
8e18e7a8ad Add support for project filtering 2017-04-16 16:52:42 -07:00
Jacob Dufault
9d8c027cfb Set thread names. Fix initialization race condition when not using shared memory. 2017-04-16 15:48:54 -07:00
Jacob Dufault
741e357053 Remove clang-c dependency from command_line.cc 2017-04-16 14:51:47 -07:00
Jacob Dufault
c0fb407447 Cross-process support can now be disabled. 2017-04-16 14:49:48 -07:00
Jacob Dufault
5105f41f6d A little bit more IPC cleanup 2017-04-16 13:43:30 -07:00
Jacob Dufault
724d8cc3f4 Refactor ipc behind a proxy type so we can (eventually) bypass all serialization when running fully in-process. 2017-04-16 12:02:29 -07:00
Jacob Dufault
2ebaadd696 Small nits 2017-04-16 01:55:14 -07:00
Jacob Dufault
faa3cce185 Add a couple completion kinds. 2017-04-16 01:37:27 -07:00
Jacob Dufault
55f527b975 Spend time on indexer thread doing a higher quality IndexUpdate merge to reduce querydb import time 2017-04-16 01:31:28 -07:00
Jacob Dufault
04a855ebc7 Much better algorithm to sync code lens index locations to the right buffer location 2017-04-16 01:09:12 -07:00
Jacob Dufault
4dcffeb3f3 Use type safe google::dense_hash_map instantiations 2017-04-14 22:55:01 -07:00
Jacob Dufault
5109d27b87 Tons of renames (generally, Queryable -> Query, QueryableTypeDef -> QueryType, QueryableFuncDef -> QueryFunc, QueryableVarDef -> QueryVar) 2017-04-14 22:41:35 -07:00
Jacob Dufault
4135186ae2 Optimize MergeableUpdate so we don't do usr->id lookups when importing on querydb thread 2017-04-14 22:24:49 -07:00
Jacob Dufault
efcc498b79 Remove a couple stale TODOs 2017-04-14 22:15:47 -07:00
Jacob Dufault
1791f4c3b7 Refactor out FindSymbolsAtLocation 2017-04-14 22:14:05 -07:00
Jacob Dufault
c946fd1b8e Simplify code for building detailed_name 2017-04-14 22:02:03 -07:00
Jacob Dufault
f4e16067b7 Rename qualified_name to detailed_name. 2017-04-14 21:58:07 -07:00
Jacob Dufault
07c984d6c7 - Add type information to qualified_name, remove hover.
- Allow tests to automatically update their expecatations
2017-04-14 21:53:10 -07:00
Jacob Dufault
349b982f66 WIP fuzzy search 2017-04-14 18:40:01 -07:00
Jacob Dufault
9826ff193b Slightly better logging 2017-04-14 17:56:16 -07:00
Jacob Dufault
f263524b19 Fix another threading crash 2017-04-14 17:54:22 -07:00
Jacob Dufault
337c1f0b12 Fix multithread crash 2017-04-14 15:58:07 -07:00
Jacob Dufault
8f1e517c0a Small tweaks 2017-04-14 15:30:33 -07:00
Jacob Dufault
031c0c2011 Include variable type and function signature in qualified name (better outline and workspace symbol search). Also add WIP rename provider. 2017-04-14 01:21:03 -07:00
Jacob Dufault
71d1b1ffc6 Implement textDocument/documentHighlight 2017-04-13 23:43:50 -07:00
Jacob Dufault
4f770befee Support textDocument/hover (ie, hover over symbol to see type) 2017-04-13 22:18:02 -07:00
Jacob Dufault
fe0b5cb79c Cleanup / simplify the querydb import code a little 2017-04-13 19:17:15 -07:00
Jacob Dufault
103b2dac95 Fix querydb import overriding good data with bad 2017-04-13 01:31:25 -07:00
Jacob Dufault
151505dadf Add TODO to investigate index or import issue 2017-04-13 01:21:24 -07:00
Jacob Dufault
d6123bd861 Every function usage is now considered a call of that function.
This means we will now report function calls that happen in the global scope (previously, those would only show up for find all refs).
2017-04-13 00:47:47 -07:00
Jacob Dufault
7a429ed3e6 Fix global symbol search (was searching usr, should search qualified name) 2017-04-12 23:02:01 -07:00
Jacob Dufault
d5e5d96a9e - Slightly more robust file parsing
- Make memory ownership slightly clearer in indexer
2017-04-12 23:01:42 -07:00
Jacob Dufault
94090b7b50 index stl declarations 2017-04-12 00:57:12 -07:00
Jacob Dufault
abbc6380f4 Fix indexing function call when there is implicit ctor call 2017-04-12 00:36:17 -07:00
Jacob Dufault
fdbb820d50 Fix outline and global search for pure virtual methods 2017-04-12 00:19:49 -07:00
Jacob Dufault
12a0db7d10 Don't call NormalizePath in core indexing logic; syscall dominates indexing time 2017-04-12 00:04:06 -07:00
Jacob Dufault
33c91de4c0 Fix goto definition on pure virtual methods 2017-04-11 23:41:19 -07:00
Jacob Dufault
e32adb1786 Fix 'Base' code lens on interface parent types 2017-04-11 23:30:31 -07:00
Jacob Dufault
7f4918ab15 Add "Base" code lens which jumps the editor to the base method definition. 2017-04-11 01:43:35 -07:00
Jacob Dufault
215a9a80fb - Show code lens for calls to parent and derived methods
- Don't show local variables in global symbol search
2017-04-11 00:29:36 -07:00
Jacob Dufault
91febd7343 Make goto declaration work from on a recursively defined type when used inside the type definition 2017-04-10 23:02:53 -07:00
Jacob Dufault
c9a251b7ab Goto definition intelligently jumps to declaration 2017-04-10 22:43:01 -07:00
Jacob Dufault
76b6a3d4fd Store indexed dependencies so we can reload all files when restoring from cache. Also slightly improve goto definition source range 2017-04-10 22:26:27 -07:00
Jacob Dufault
e9f0c57708 Implement textDocument/references 2017-04-09 22:34:06 -07:00
Jacob Dufault
88e0d224e3 Still pretty clunky but sort of usable 2017-04-09 17:17:49 -07:00
Jacob Dufault
527439b7c2 WIP on updating index; locations still broken 2017-04-09 17:08:54 -07:00
Jacob Dufault
43ad87ab8d Some delta tracking improvements. Still not perfect but probably good enough. Also hide refs that have been deleted in source code. 2017-04-09 15:16:06 -07:00
Jacob Dufault
6e90f8db45 Enable partial document change sync, use delta info to keep references/code lens in sync when editing 2017-04-09 12:38:52 -07:00
Jacob Dufault
3cd9ae4d16 Remove some duplicated code in workspace / document symbol creation 2017-04-08 19:48:50 -07:00
Jacob Dufault
96d5815641 cleanup code lens implementation 2017-04-08 19:31:00 -07:00
Jacob Dufault
5ebf4551b1 remove UsrRef 2017-04-08 19:27:07 -07:00
Jacob Dufault
6720a886e3 move some code out of command_line.cc 2017-04-08 19:24:32 -07:00
Jacob Dufault
c25fac0919 Make Resolve location never fail 2017-04-08 16:16:30 -07:00
Jacob Dufault
736b56d730 Remove string_db files 2017-04-08 16:12:14 -07:00
Jacob Dufault
56f0b3a90a Auto-index header files 2017-04-08 15:54:36 -07:00
Jacob Dufault
460a428ced Parse now returns a vector of unique_ptrs 2017-04-08 13:00:08 -07:00
Jacob Dufault
f0e8d0110c Add call refs from ctor context 2017-04-08 11:36:32 -07:00
Jacob Dufault
eec863da9a Small cleanup 2017-04-08 01:17:29 -07:00
Jacob Dufault
59c7d96ea7 Migrate QueryableVarDef to indicies 2017-04-08 01:07:39 -07:00
Jacob Dufault
fffb3d3fcc Migrate QueryableFuncDef to indices 2017-04-08 01:04:38 -07:00
Jacob Dufault
64d65584fd Use indexed ids for QueryTypeDef 2017-04-08 00:52:57 -07:00
Jacob Dufault
d61cc7a077 QueryableLocation now stores a file index 2017-04-08 00:21:00 -07:00
Jacob Dufault
74b1fe7194 QueryFile is now storing symbol indices directly 2017-04-08 00:11:57 -07:00
Jacob Dufault
4249fc4a38 Implement new threading model for computing index updates (prepare IdMap on querydb thread) 2017-04-07 23:45:28 -07:00
Jacob Dufault
22cc140d80 use sparsehash 2017-04-07 18:35:12 -07:00
Jacob Dufault
820a1dc093 compile-fixes 2017-04-07 17:34:13 -07:00
Jacob Dufault
6f071cfeb8 wip IdMap 2017-04-07 01:01:58 -07:00
Jacob Dufault
c5dc7a7ac7 wip towards id migration, use IdMap isntead of IdCache 2017-04-07 00:30:08 -07:00
Jacob Dufault
2d93ceb6db simplify some code, remove unused class 2017-04-07 00:12:53 -07:00
Jacob Dufault
3368065d94 remove some default ctors 2017-04-07 00:01:21 -07:00