Commit Graph

268 Commits

Author SHA1 Message Date
Alexandros Naskos
34ba67b3d1 Fixed node iteration: 2020-05-24 17:07:48 +03:00
Alexandros Naskos
40e1e8843c Added timing information output 2020-05-24 15:39:40 +03:00
Alexandros Naskos
9ec32ac830 We now complete ArrayList! 2020-05-24 15:24:18 +03:00
SuperAuguste
dd9ec8e450 Fix completion of functions 2020-05-23 22:07:09 -04:00
Alexandros Naskos
f5ca94a0d1 Merge remote-tracking branch 'zigtools/master' into new_parser 2020-05-24 02:08:06 +03:00
Alexandros Naskos
11b5da3a91 Now compiles on the new parser branch 2020-05-24 01:21:02 +03:00
Alexandros Naskos
22b5d2e2c3 Pass the arguments in the correct order dummy 2020-05-24 00:15:35 +03:00
Alexandros Naskos
5dc7a1b40a Fix @This() completions, do half the work in global completions 2020-05-23 23:22:50 +03:00
Alexandros Naskos
30cb9e06e4 Complete non-pub declarations in the same module 2020-05-23 16:14:03 +03:00
Alexandros Naskos
c895d7d8f6 Go to definition now works for captures 2020-05-23 02:58:39 +03:00
Alexandros Naskos
34adb4e22f Added switch to declFromIndex, fixed occasional crash 2020-05-23 02:33:42 +03:00
Alexandros Naskos
a189fa171c More declsFromIndex improvements 2020-05-23 01:58:47 +03:00
Alexandros Naskos
c3d2aa3434 Handle if, while, for, payloads 2020-05-23 01:03:41 +03:00
Alexandros Naskos
d4871914ea Removed debug traces 2020-05-23 00:05:16 +03:00
Alexandros Naskos
077a17e2f5 Do not add every node when adding decls, just the supported nodes 2020-05-23 00:02:26 +03:00
Vexu
2841c864bc
uriFromImportStr ignore packages for now 2020-05-22 18:56:57 +03:00
Vexu
af746be770
provide goto definition for import strings 2020-05-22 18:52:21 +03:00
Alexandros Naskos
ccc923e2f0 One more fix 2020-05-21 21:02:12 +03:00
Alexandros Naskos
2eab5e036d Check that the goto definition cursor is within bounds 2020-05-21 20:51:03 +03:00
Auguste Rame
44f33c631b
Merge pull request #71 from alexnask/test_block_completions
Test block local completions
2020-05-21 09:14:34 -04:00
Alexandros Naskos
26cc339235 Add test block local completion support 2020-05-21 15:16:45 +03:00
Alexandros Naskos
03f774fda9 Try expression support 2020-05-21 15:06:16 +03:00
Alexandros Naskos
4acb77f09e enable_snippets is false by default, fix it in README. Small fixes to goto def/decl 2020-05-21 14:36:14 +03:00
SuperAuguste
75f1aa5780 fix workspace folder bug 2020-05-19 16:24:24 -04:00
Alexandros Naskos
61b8fd5259 Moved a calculation out of a loop 2020-05-19 22:33:15 +03:00
Alexandros Naskos
7dcbc39d59 Added workspace folder support, read configs from there, use known-folders 2020-05-19 22:09:00 +03:00
Alexandros Naskos
6fe52d95b3 Added @This() support 2020-05-19 18:53:01 +03:00
Alexandros Naskos
8d59de716f Better fn name 2020-05-19 16:47:30 +03:00
Alexandros Naskos
07f2138dce Simple generic function support 2020-05-19 16:42:36 +03:00
Sergeeeek
c55363e2c2 Code style fixes 2020-05-19 12:02:48 +03:00
Sergeeeek
06ba823368 Removed logs and unused utility function 2020-05-19 07:47:23 +03:00
Sergeeeek
4b3cb641c0 Fixed wrong node being used when resolving return type of a function 2020-05-19 07:39:34 +03:00
Sergeeeek
5043a10dd4 Fixed error after merge 2020-05-19 07:18:39 +03:00
Sergeeeek
c4aa35872c Merge remote-tracking branch 'upstream/master' 2020-05-19 07:17:28 +03:00
Sergeeeek
1f50f4e4f6 Moved deep import resolution to nodeToCompletion 2020-05-19 07:12:05 +03:00
Alexandros Naskos
53da418d11 Merge branch 'master' of https://github.com/SuperAuguste/zls into goto_definition 2020-05-18 23:20:18 +03:00
Alexandros Naskos
b1ce06a80d Implemented go to definition 2020-05-18 23:19:23 +03:00
Timon Kruiper
27034abbaf Also return from getFieldAccessTypeNode when a comma is found.
This allows to get completion support when a function with multiple
arguments is completed.
2020-05-18 20:59:44 +02:00
SuperAuguste
acd85c0f39 fix 2020-05-18 12:37:56 -04:00
Alexandros Naskos
8693c4a69f Removed last remaining log. RIP 2020-05-18 19:33:58 +03:00
SuperAuguste
b9bd0e2476 remove log 2020-05-18 11:36:47 -04:00
SuperAuguste
66908bd1a9 Revert buffered in stream - it breaks inputs for some strange reason 2020-05-18 09:31:17 -04:00
Auguste Rame
847414d9ca
Merge pull request #54 from alexnask/goto_definition
Fixed field completions with partial identifiers after the period
2020-05-18 09:25:00 -04:00
Alexandros Naskos
a017de1679 Added a comment 2020-05-18 16:22:10 +03:00
Alexandros Naskos
bbe2800139 Fixed field completions with partial identifiers after the period 2020-05-18 16:21:16 +03:00
Auguste Rame
5a6ff63d8c
Merge branch 'master' into master 2020-05-18 08:58:32 -04:00
Auguste Rame
0a0f902671
Merge pull request #50 from FireFox317/bufferedstreams
Wrap stdout in BufferedOutStream
2020-05-18 08:54:04 -04:00
Alexandros Naskos
a6a4afd4fd More cleanup: 2020-05-18 15:46:17 +03:00
Alexandros Naskos
749a4fcbe4 Renamed checkSanity to removeOldImports, use an arena for temporary data. 2020-05-18 15:14:16 +03:00
Alexandros Naskos
96672435a7 Removed unnecessary copies 2020-05-18 14:55:39 +03:00
Alexandros Naskos
e65d3388e4 A couple of more changes 2020-05-18 14:53:40 +03:00
Alexandros Naskos
4ad33c16f9 Fixed crash when field access completing on a local variable from a type coming from an import 2020-05-18 14:26:52 +03:00
Sergeeeek
07a44bc0ed Fixed errors after upstream merge 2020-05-18 11:37:15 +03:00
Sergeeeek
2c5cc2b48f Merge remote-tracking branch 'upstream/master' 2020-05-18 10:34:26 +03:00
Sergeeeek
d79f3bc809 Change handles HashMap value type to pointers instead of values themselves 2020-05-18 10:28:36 +03:00
Sergeeeek
6cd98697c0 Fixed handle changing while analysis is in progres
New bug though, only function declarations are completed now
2020-05-18 10:06:29 +03:00
Timon Kruiper
6a4dc3334a Wrap stdout in BufferedOutStream for more speed
gotta go fast right :D

Also remove some unused code
2020-05-17 19:36:58 +02:00
daurnimator
410ac0e5b4
Use buffered input stream 2020-05-18 01:37:02 +10:00
Alexandros Naskos
14749ce02b Added missing errdefer 2020-05-17 18:21:02 +03:00
Auguste Rame
add13df816
Merge pull request #47 from daurnimator/master
Cleanups and rewrite of reading
2020-05-17 11:15:28 -04:00
daurnimator
0e67ffd8c4
Rewrite request reading 2020-05-18 01:07:08 +10:00
daurnimator
c1599c755d
Misc cleanups 2020-05-18 00:50:55 +10:00
Vexu
6e8165804f
add completion for arrays and slices 2020-05-17 17:27:05 +03:00
SuperAuguste
a2402b9885 Merge branch 'master' of https://github.com/SuperAuguste/zls 2020-05-17 09:40:34 -04:00
SuperAuguste
38213e1322 fixed struct init 2020-05-17 09:40:20 -04:00
Auguste Rame
7b7b718edb
Merge pull request #44 from alexnask/more_allocation_info
Better debug allocator
2020-05-17 08:31:07 -04:00
SuperAuguste
7e766e3d8a Merge branch 'master' of https://github.com/SuperAuguste/zls 2020-05-17 08:28:09 -04:00
Alexandros Naskos
843db49790 Better debug allocator 2020-05-17 14:40:32 +03:00
Sergeeeek
0b433815b3 Got some aliases working
Can't figure out a bug with document changing in the original context,
which causes further analysis to break.
2020-05-17 09:47:48 +03:00
Alexandros Naskos
15a277918f Correctly resolve type of field access 2020-05-17 01:30:59 +03:00
SuperAuguste
220d668929 local var completion 2020-05-16 14:06:48 -04:00
Sergeeeek
8637099d72 WIP alias type resolution 2020-05-16 18:30:16 +03:00
Alexandros Naskos
a7b9755201 Add a space 2020-05-16 17:24:41 +03:00
Alexandros Naskos
1f5c8c0b77 Merge branch 'master' of https://github.com/SuperAuguste/zls 2020-05-16 17:23:12 +03:00
Alexandros Naskos
5a2043ded5 Fixed the build for the latest std.zig parser fixes 2020-05-16 17:21:42 +03:00
Noam Preil
3d5e775bf7
Make style guideline warnings opt-in 2020-05-15 15:14:37 -04:00
Auguste Rame
fc9d91517b
Merge pull request #22 from Vexu/ast
Parsing now always results in an AST
2020-05-15 10:21:33 -04:00
Vexu
3111627923
parsing now always results in a AST 2020-05-15 14:21:29 +03:00
Alexandros Naskos
18a0ffc7e2 Check that the zg std library path provided is absolute, default to null otherwise 2020-05-15 13:21:34 +03:00
Alexandros Naskos
9fc7d1f66e Maintain case when making a URI from a file, make drive letter lowercase on windows 2020-05-15 13:15:10 +03:00
Alexandros Naskos
b540a48fa7 Removed comment 2020-05-15 00:21:04 +03:00
Alexandros Naskos
6954016c91 Trigger global and field completions correctly in more contexts. 2020-05-15 00:16:40 +03:00
SuperAuguste
73c3e87a37 fix errors 2020-05-14 15:57:31 -04:00
Auguste Rame
8468207da3
Merge pull request #23 from Vexu/err
Implement completion for error sets
2020-05-14 13:46:15 -04:00
Vexu
a739bf6499
implement completion for error sets 2020-05-14 20:45:26 +03:00
SuperAuguste
86a1edf9c7 Remove more redundant code, rename function 2020-05-14 12:23:26 -04:00
SuperAuguste
58015dcd64 Remove dead code 2020-05-14 12:16:06 -04:00
SuperAuguste
40235cbdbb fix field access type 2020-05-14 12:14:35 -04:00
Vexu
db6407ea3b
implement getDocComments for rest of named nodes with docs 2020-05-14 19:08:00 +03:00
SuperAuguste
353c9b3261 undo 2020-05-14 10:11:59 -04:00
SuperAuguste
9609aee6a9 test ci 2020-05-14 10:11:32 -04:00
Auguste Rame
bdf7bad51d
Merge pull request #19 from alexnask/imports
Basic import support
2020-05-14 08:53:52 -04:00
Alexandros Naskos
197ba84a82 Finished DocumentStore.deinit() 2020-05-14 15:26:10 +03:00
Alexandros Naskos
ca0bc205e4 Fixed crash with enum fields 2020-05-14 15:15:27 +03:00
Alexandros Naskos
942b617865 Updated README, config.zig doc comment 2020-05-14 15:09:27 +03:00
Alexandros Naskos
f5e4586c76 Detect import removal and decrement document referece count 2020-05-14 14:51:07 +03:00
Alexandros Naskos
112d38e7fa Fixed crash in snippet generation of varargs functions 2020-05-14 13:57:55 +03:00
Alexandros Naskos
6db3c74550 Renamed import context to analysis context, added arena for temporary allocations while analyzing 2020-05-14 12:23:20 +03:00
Alexandros Naskos
7a8a4e1ec5 Fixed crash when completing import with dot access 2020-05-14 12:12:04 +03:00
Alexandros Naskos
76e9a079a3 Avoid unnecessary copy of document text when opening new imports 2020-05-14 11:51:49 +03:00
Alexandros Naskos
60ffc5f551 Fixed crash while closing document (uri double free) 2020-05-14 11:40:17 +03:00
Alexandros Naskos
95b6e6cd6a Fixed relative URI code, get latest tree in analysis 2020-05-14 05:14:37 +03:00
Alexandros Naskos
86d264f488 1 level deep imports now work but we crash when adding levels 2020-05-14 05:00:00 +03:00
Alexandros Naskos
31f1d2fa3e First draft of imports 2020-05-14 04:54:05 +03:00
SuperAuguste
18c026372b fix empty comments 2020-05-13 19:43:09 -04:00
SuperAuguste
bc597025e7 revert fix 2020-05-13 19:41:08 -04:00
SuperAuguste
1a2f83d84b Fix empty comments 2020-05-13 19:40:34 -04:00
SuperAuguste
b182eec37f quick removal of debug 2020-05-13 19:36:51 -04:00
Alexandros Naskos
307dceb703 Preparation for imports, abstracted document hashmap into a document storage type 2020-05-14 02:10:41 +03:00
Alexandros Naskos
be95849a15 Added pointer type resolution 2020-05-13 22:35:14 +03:00
Alexandros Naskos
0e0789b2d5 Unified completions into a function, small snippet improvement 2020-05-13 20:30:57 +03:00
SuperAuguste
20afe9ef3c Doc comments, function completion in structs 2020-05-13 12:19:10 -04:00
SuperAuguste
e9b5bf433e Add function completion, fix function snippet generation 2020-05-13 11:59:44 -04:00
SuperAuguste
7c388812c7 remove debug 2020-05-13 11:45:32 -04:00
Auguste Rame
adbcaefe26
Merge pull request #14 from SuperAuguste/completion
Start implementing completion
2020-05-13 11:44:07 -04:00
SuperAuguste
dc292e74ee null bug fixes 2020-05-13 11:43:28 -04:00
SuperAuguste
9ae912efdd super basic completion, tons of things to iron out 2020-05-13 10:10:20 -04:00
SuperAuguste
a3067f88b1 Add new analysis engine 2020-05-13 09:03:33 -04:00
Alexandros Naskos
4f2828f9cb Removed debug log 2020-05-12 20:02:22 +03:00
Alexandros Naskos
aacad999c4 Made function snippet generation better. 2020-05-12 19:59:16 +03:00
SuperAuguste
d0837ffc51 Start implementing completion 2020-05-11 08:28:08 -04:00
SuperAuguste
a2f314301c quick fix of asset 2020-05-09 15:42:35 -04:00
Alexandros Naskos
86fbf5fe7e Global completions now check config for snippet support, modified readme to reflect changes. 2020-05-09 21:45:13 +03:00
Alexandros Naskos
25cc662bcc Merge branch 'master' of https://github.com/SuperAuguste/zls into read_config 2020-05-09 21:38:20 +03:00
Alexandros Naskos
35b4913b3e Removed no_snippets build option.
Instead, we now read a configuration file, zls.json in the same folder as the executable.
Options are defined in the struct config.zig and must have default values.
The only option right now is enable_snippets and it defaults to true.
2020-05-09 16:43:51 +03:00
Alexandros Naskos
f25dade27d Removed comments 2020-05-09 05:43:17 +03:00
Alexandros Naskos
e46135cb68 Added snippet completion for global functions, fixed no snipper completion. 2020-05-09 05:38:08 +03:00
Alexandros Naskos
922559c83a Use error iterator instead of manual looping in diagnostic generation 2020-05-09 04:02:29 +03:00
SuperAuguste
01b2c2e328 fix bug with latest pr 2020-05-08 13:02:46 -04:00
Auguste Rame
b939b9cefa
Merge pull request #11 from alexnask/PascalCase
Detect type functions and require PascalCase, require camelCase for the rest
2020-05-08 12:20:34 -04:00
Alexandros Naskos
d8457c96a1 is_type_function is const 2020-05-08 18:07:14 +03:00
Alexandros Naskos
29b0045bc7 Detect type functions and require PascalCase, require camelCase for the rest 2020-05-08 18:01:34 +03:00
Alexandros Naskos
bd7675e5b7 Fixed typo 2020-05-08 17:25:22 +03:00
Alexandros Naskos
09cd91690c Renamed documentContext to documentPositionContext and added multiline string literal to it. 2020-05-08 17:24:29 +03:00
SuperAuguste
ffcdb886d9 fix crash with documentContext 2020-05-08 09:17:32 -04:00
Alexandros Naskos
aca7db3e88 Reset context to other when trying to find field/var access and don't get alphanumerical or @"..." 2020-05-08 15:09:31 +03:00
Alexandros Naskos
0b5eb4b9d2 Fixed field_access check 2020-05-08 15:07:14 +03:00
Alexandros Naskos
0149f11c7c Switched Context to PositionContext 2020-05-08 14:36:54 +03:00
Alexandros Naskos
982a39f868 Added context detection from document and position for builtins, variable accesses, field accesses, string literals and comments. 2020-05-08 13:50:21 +03:00
SuperAuguste
fb9f50d606 fix builtin completion 2020-05-07 23:05:17 -04:00
SuperAuguste
84837dfe58 fix pub functions 2020-05-07 22:27:42 -04:00
Alexandros Naskos
02e57f5d59 Renamed leak_alloction build option to allocation_info
Switched to readAll and writeAll stream functions
Disabled logs on non-debug builds
Created freeDocument(doc), closeDocument(uri), called at appropriate sites
Removed _ = expr; for void values
Added and clarified some logging messages
Simplified builtin_completion generation
The JSON parser is now reused but reset after parsing a RPC
Fix memory leak when closing a document (last mem. leak)
Renamed leak_alloc to debug_alloc
Removed catch return statements from main(), rely on try to also get stacktraces instead
2020-05-08 02:53:00 +03:00
SuperAuguste
01ff89eea3 Add no_snippets 2020-05-07 13:16:04 -04:00
Alexandros Naskos
6ed45a1f23 Also free the sane text when releasing a document 2020-05-07 20:02:54 +03:00
Alexandros Naskos
6ac068a3c5 Merge branch 'master' of https://github.com/SuperAuguste/zls into separate_text_mem 2020-05-07 19:54:11 +03:00
SuperAuguste
447d52dd1c fix init error 2020-05-07 12:47:39 -04:00
SuperAuguste
6b099f8c6d fix 2020-05-07 12:25:37 -04:00
Alexandros Naskos
4d5f833226 Merge branch 'master' of https://github.com/SuperAuguste/zls into separate_text_mem 2020-05-07 18:43:56 +03:00
SuperAuguste
1725278be1 add master data, add data selection 2020-05-07 11:29:40 -04:00
Alexandros Naskos
ee594a1b2f Separate document text and memory.
Text is now a substring of memory, starting at index 0.
We now realloc memory when needed and only copy the existing data around
    instead of allocating a new string, copying all the data and freeing
    the old string.
This leads to possibly less allocation calls, depending on the allocator
    and less copying necesssary.
2020-05-07 17:58:31 +03:00