Commit Graph

320 Commits

Author SHA1 Message Date
Alexandros Naskos
bfdeecbd04 Better alias support 2020-06-15 01:19:21 +03:00
Alexandros Naskos
48019dd7e2 Added label support 2020-06-14 22:24:18 +03:00
Alexandros Naskos
7f12928fe9 Dont show fields in global completions and from usingnamespaced scopes 2020-06-14 13:03:14 +03:00
Alexandros Naskos
0592513da4 Basic semantic tokens implementation 2020-06-14 01:07:57 +03:00
Alexandros Naskos
112f6d735a Correctly handle inferred error sets, add self argument support when evaluating bound type params, semanticToken scaffolding 2020-06-13 21:20:04 +03:00
Alexandros Naskos
04638a6d4d Fixed occasional crash on Sublime text, only get params when we use then 2020-06-12 20:31:33 +03:00
Alexandros Naskos
98ebac6d64 Take more client capabilities into account 2020-06-12 17:42:41 +03:00
Alexandros Naskos
80dd19dd8b Usingnamespace support 2020-06-11 02:40:11 +03:00
Alexandros Naskos
7650decfa0 Improvements 2020-06-11 01:00:13 +03:00
Alexandros Naskos
b8b6c534e8 Fixed field access 2020-06-11 00:24:57 +03:00
Alexandros Naskos
86e417e8dc Add hover, goto, completions for alternate declaration types 2020-06-10 22:52:33 +03:00
Alexandros Naskos
545989339d Remove unused code, fixed snippet self param skipping 2020-06-10 22:05:11 +03:00
Alexandros Naskos
05d75781de Now builds! 2020-06-10 21:24:17 +03:00
Alexandros Naskos
3bdb2ee444 More progress 2020-06-10 20:48:40 +03:00
Alexandros Naskos
d6609d918b More progress 2020-06-10 19:54:01 +03:00
Alexandros Naskos
9b08d9e88a Started removing scope_nodes, using symbol table instead 2020-06-10 19:01:44 +03:00
Alexandros Naskos
c2f8537d7b Added maximum bytes allocated in debug allocator, as well as peak memory usage 2020-06-09 16:39:00 +03:00
SuperAuguste
3c2c1e97ed preamble to usingnamespace 2020-06-08 23:21:55 -04:00
SuperAuguste
6ae23ba2d0 fix field details in completions 2020-06-07 09:49:21 -04:00
Alexandros Naskos
a2c4f7c5c7 Removed debug trace 2020-06-06 16:57:39 +03:00
Alexandros Naskos
af42c95222 Handle string request ids 2020-06-06 15:40:33 +03:00
Alexandros Naskos
73b58abe51 Detect self arguments and skip it when generating snippets 2020-06-06 02:44:43 +03:00
Alexandros Naskos
563c4f0294 Fixed newlines in markdown line comments 2020-06-05 00:19:00 +03:00
Alexandros Naskos
9392c4032c Only refresh packages when saving a build.zig file, not on any change 2020-06-03 11:32:05 +03:00
Alexandros Naskos
ef95c76e45 Added doc comments on hover 2020-06-03 11:23:14 +03:00
Alexandros Naskos
e7157ba381 Preparing for semantic tokens support. Fix a crash on some function calls 2020-06-02 16:48:23 +03:00
Alexandros Naskos
52fe21b8bd Parse client capabilities for snippet support 2020-06-01 13:29:06 +03:00
Alexandros Naskos
269c308ec7 Respond with null where we can, even if we already marked a capability as false. 2020-06-01 12:28:33 +03:00
Alexandros Naskos
50c8cebe26 Removed reachable unreachable 2020-05-31 18:02:33 +03:00
Alexandros Naskos
543cb5816c Added zig_exe_path option, use it to detect lib path if none is provided 2020-05-30 23:36:18 +03:00
Vexu
c1ba26e0a2
implement completion for enum literals 2020-05-28 18:21:51 +03:00
Vexu
22a863134b
implement global error set completion 2020-05-28 15:45:11 +03:00
SuperAuguste
2b153e046c outlines, made JSON stdout memory dynamic 2020-05-27 20:39:36 -04:00
Alexandros Naskos
7602f34bb4 Added .?, .*, [] support 2020-05-27 18:49:11 +03:00
Alexandros Naskos
f6df35e069 Reworked position context to use tokenizer, works in more contexts 2020-05-27 01:45:18 +03:00
Alexandros Naskos
a330932b7c Copy scope nodes when cloning an analysis context 2020-05-26 17:19:16 +03:00
Alexandros Naskos
da6f43c46d Go to definition now resolved fn aliases, added hover 2020-05-26 01:51:50 +03:00
Alexandros Naskos
48ad1eccbf Fixed goto import, preparing for hover impl 2020-05-26 00:37:18 +03:00
Alexandros Naskos
754a982be2 Make capabilities explicit, make hover capability true 2020-05-25 23:15:54 +03:00
Alexandros Naskos
b82fb9c790 Added build_runner_path configuration option 2020-05-25 20:04:23 +03:00
Alexandros Naskos
02745f1472 Free build files in document store deinit 2020-05-25 19:49:04 +03:00
Alexandros Naskos
4bf97bebc9 Seems to work, needs cleanup 2020-05-25 19:33:08 +03:00
Alexandros Naskos
155c5b2a95 Started working on build file logic 2020-05-25 17:24:44 +03:00
Alexandros Naskos
4542abf145 Check for the existence of zig in PATH in main() 2020-05-25 16:18:00 +03:00
Alexandros Naskos
3b052372c2 Added custom build runner, install it along with the zls binary 2020-05-25 03:22:39 +03:00
Alexandros Naskos
c6fa528af4 Store trees in handles 2020-05-24 19:00:21 +03:00
Alexandros Naskos
fd069b026a Added hack to support ParamDecl not being a node anymore 2020-05-24 17:31:28 +03:00
Alexandros Naskos
594488d7c5 Merged master 2020-05-24 17:12:13 +03:00
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
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
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
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
7dcbc39d59 Added workspace folder support, read configs from there, use known-folders 2020-05-19 22:09:00 +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
b1ce06a80d Implemented go to definition 2020-05-18 23:19:23 +03: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
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
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
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
Auguste Rame
7b7b718edb
Merge pull request #44 from alexnask/more_allocation_info
Better debug allocator
2020-05-17 08:31:07 -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
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
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
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
86a1edf9c7 Remove more redundant code, rename function 2020-05-14 12:23:26 -04:00
SuperAuguste
40235cbdbb fix field access type 2020-05-14 12:14:35 -04: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
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
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
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
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
SuperAuguste
d0837ffc51 Start implementing completion 2020-05-11 08:28:08 -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
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
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
Alexandros Naskos
04abb3a5ff Fix merge conflicts 2020-05-07 16:23:13 +03:00
Alexandros Naskos
5c602745fd Use the page allocator as our base allocator for now. 2020-05-07 16:20:45 +03:00
Alexandros Naskos
cea1222b79 Free the old document text after rebuilding the new one, this was a use after free since before, after point into the old memory 2020-05-07 16:04:57 +03:00
Alexandros Naskos
eaf0c1f3e5 Switched struct and enum literals to use the anonymous form where possible.
Added trailing commas to fields of struct literals that are followed by newline.
2020-05-07 15:29:53 +03:00
Alexandros Naskos
a0addc040d Fixed a bug in publishDiagnostics where message data on the stack could be corrupted before being sent 2020-05-07 15:01:16 +03:00
Alexandros Naskos
c5d3d7902e Free json parser state, compute builtin completions at comptime 2020-05-07 14:36:40 +03:00
Alexandros Naskos
a7e4d0b5e3 Use a local arena to free all memory with one call. 2020-05-07 14:10:58 +03:00
Alexandros Naskos
e9d9c57ff4 Fixed some additional memory leaks. 2020-05-07 13:56:08 +03:00
Alexandros Naskos
3fa5ef4b96 Fixed a couple of typos 2020-05-07 12:58:35 +03:00
Alexandros Naskos
0283222e3a Added build option to enable the leak counting allocator.
Log the allocation count to the client at the end of the main loop.
Fixed two memory leaks in analysis.zig
2020-05-07 12:50:25 +03:00
SuperAuguste
5bd790f416 basic stylistic linter 2020-05-03 22:17:19 -04:00
SuperAuguste
b0e21bf82c hotfix 2020-05-03 17:27:37 -04:00
SuperAuguste
738a9be0cc added function comments and signature 2020-05-03 17:27:08 -04:00
SuperAuguste
88814b9589 better builtin completion, versioning 2020-05-02 12:43:26 -04:00
SuperAuguste
999a365f3c fixes 2020-04-28 09:31:41 -04:00
SuperAuguste
def89a90f5 Better builtin completion 2020-04-27 22:59:28 -04:00
SuperAuguste
ce443ba1dd Completion of global values, and some reformatting 2020-04-27 16:38:35 -04:00
SuperAuguste
a0ff26cc8f init 2020-04-24 18:19:03 -04:00