Commit Graph

161 Commits

Author SHA1 Message Date
Techatrix
f2b133c428 update tests 2023-01-23 21:29:51 +01:00
Techatrix
723592e2ed enable successful interpreter tests 2023-01-22 22:51:54 +01:00
Álan Crístoffer
903f85ab94
Fix lsp weird behaviour on block cursors (#891) (#905)
* Fix lsp weird behaviour on block cursors (#891)

Adds lookahead option to getPositionContext.
2023-01-22 15:47:53 -05:00
Aleksey Kladov
ea05916e69 Goto definition works when the cursor is at the start of the identifier.
Before, the code lexed only a prefix of the line up to cursor position.
Now, we lex the entire line, and do look at the token just after the
cursor.

This subtly changes sematncih of `getPostionContext`: now it is becomes
oblivious of the _exact_ position of the cursor and returns the whole
token at cursor's position.

I believe this is semantically right approach -- _most_ of the callsite
should not worry at all about such details. Something like completion
_might_ want to know more, but it's better to make that call site's
problem.

It might be the case that some existing code relies on the past
behavior. It's hard to tell though -- we don't have a lot of tests for
_features_, and changes to unit-tests don't explain if the changes are
meaningful for user-observable behavior or not.

In general, for LSP-shaped thing, I feel that the bulk of testing should
be focused on end-to-end behaviors....
2023-01-21 18:31:26 +00:00
Techatrix
89ac9d00f5 add more interpreter tests 2023-01-20 22:25:19 +01:00
Techatrix
ba42fd2bb9 Merge branch 'master' into intern-pool 2023-01-20 22:23:44 +01:00
Techatrix
bcd2b7f1ae report interpreter errors in tests 2023-01-20 19:55:53 +01:00
Techatrix
ea7fc74483 add more comptime interpreter tests 2023-01-20 19:29:03 +01:00
Techatrix
b4ac6142cf correctly resolve primitive types 2023-01-20 19:20:42 +01:00
Techatrix
34b2643b33 add basic comptime interpreter tests 2023-01-20 17:06:16 +01:00
Techatrix
f5188c4407 update test 2023-01-14 21:54:45 +01:00
Techatrix
04d281340c restructure ComptieInterpreter tests 2023-01-14 14:08:15 +01:00
Alex Kladov
a6b7a35367
add tests for textDocument/Definition (#900) 2023-01-10 09:40:40 +00:00
Techatrix
3f2700eaa5
improve completion on error and enums (#887) 2023-01-06 13:59:20 -05:00
Techatrix
650eaeb66c implement anyframe->T 2023-01-06 14:38:28 +01:00
Techatrix
4b4aafb8ee first successful test case 🚀 2023-01-04 11:12:29 +01:00
Techatrix
3449269fd3
Add a replay feature to zls (#857)
* add config options for `zls --replay`

* implement `zls --replay`

* remove carriage return from zls replay files

* add missing arguments for Server.init in tests
2022-12-31 01:45:45 -05:00
Techatrix
f473088b64
fix crashes found through fuzzing (#866) 2022-12-30 18:42:28 -05:00
Techatrix
61c0981294
Use zig-lsp-codegen (#850)
* add lsp.zig

* change references from types.zig to lsp.zig

* remove types.zig and requests.zig

* add tres as a submodule

* transition codebase from types.zig to lsp.zig

* update lsp.zig

* completely overhaul message handler

* fix memory errors

* partially transition tests to lsp.zig

* update lsp.zig

* more test fixes

* disable failing tests

* fix message handling bugs

* fix remaining tests

* access correct union in diff.applyTextEdits

* more message handler fixes

* run zig fmt

* update tres submodule

* fix memory access to freed memory

* simplify initialize_msg for testing

* check if publishDiagnostics is supported
2022-12-27 01:47:57 -05:00
Ryan Liptak
f6c15ac10c
semantic_tokens: Fix handleComments not evaluating the last byte (#844)
Fixes #842
2022-12-22 22:27:38 -05:00
Auguste Rame
1e99692d5c
Enable stage2 (#810) 2022-12-07 11:39:46 -05:00
Joseph Stahl
887539ed1a
Allocator.resize() does not adjust size of string allocated for URI to file path conversion (#806)
* fix missing backslash

* fix: zls escaping colon to %3A on URIs

ZLS escapes a colon char ":" as "%3A" when encoding file paths to URIs
When decoding, need to make the target string 2 character shorter
to compensate for length decrease when replacing %3A with :

* add new failing test because of resize()

* revert changes to %3A handling - problem seems to be with allocator.resize

* switch to realloc

* Fix test failures, revert errdefer->defer

* platform-specific URI tests

URI parsing is highly platform-specific
run Unix-style (file:///home/main.zig) on non-Windows test runners,
run Windows-style (file://c%3A/main.zig) on Windows test runners
2022-12-04 16:44:22 -05:00
Auguste Rame
580469cd32
Fix rogue resize, bump minimum version (#805) 2022-12-03 21:35:51 -05:00
Alex Kladov
cfb0b023ad
fix #801, IOOB in foldingRanges (#802)
* Add smoke tests for folding ranges

* fix index out of bounds in foldingRanges

closes #801

For invalid syntax trees, zig's parser seems to return bogus data where
startToken > endToken, which then causes everything else to crash.

This seems like a deeper issue, which needs to be fixed "properly", but
let's just paper over it here.
2022-12-03 17:23:13 +02:00
Auguste Rame
6ab2c68355
Allocgate 2.0 slain (#791)
* Allocgate 2.0 slain

* Tests now compile, but they fail

* Temporary bruteforce
2022-12-02 15:14:58 -05:00
Aleksey Kladov
8731a37d1f textDocument/selectionRange
closes #777
2022-11-26 11:31:46 +00:00
Auguste Rame
369b851dc7
Revert "move to stage2 (#781)" (#783)
This reverts commit 29679ee6f8.
2022-11-25 19:18:32 -05:00
Techatrix
29679ee6f8
move to stage2 (#781) 2022-11-25 16:31:27 -05:00
Auguste Rame
355d56376f
Merge pull request #724 from zigtools/comptime-bebe-steps
Implement comptime interpreter
2022-11-16 18:13:35 -05:00
Techatrix
31584cff60
find references in while continue expressions (#758) 2022-11-16 17:35:51 -05:00
Techatrix
d75fd3a880
detect comment position context (#756) 2022-11-16 17:34:36 -05:00
Auguste Rame
c8dffc1f9b
Some comptime interpreter fixes 2022-11-10 20:51:02 -05:00
Auguste Rame
599c134593
Imports, cross-boundary resolution; can import std but dies on missing builtins / lang features 2022-11-08 14:37:13 -05:00
Auguste Rame
779c3c0710
Hacky mess but it works (only if your function is the first root decl tho :P) 2022-11-08 14:37:13 -05:00
Auguste Rame
06e8756849
Add struct test 2022-11-08 14:37:13 -05:00
Auguste Rame
d2640a44ac
comptime interpreter moment 2022-11-08 14:37:01 -05:00
Techatrix
7a7576c06d
fix symbol references (#712)
* fix symbol references

* skip references for inline assembly
2022-10-29 04:37:52 -04:00
Techatrix
13f3b200bc
add tests for completion (#719) 2022-10-27 16:25:44 -04:00
Techatrix
a9a1fad13e
remove types.TextDocument (#693)
* remove types.TextDocument

* resolve compile errors because of previous merge
2022-09-30 20:45:45 -04:00
Techatrix
51356517a9
Self hosted fixes (#682)
* fix compiler errors when using self-hosted

* move parameters into builder struct

* simplify code when using self hosted

* fix stage2 error `cast discards const qualifier`

* correctly return after finding method

* fix position context tests on self hosted

* remove unnecessary comptime in position context tests
2022-09-30 00:04:55 -04:00
Matt Knight
6ec6d4ea36
Revamp bulid.zig discovery (#688)
* walk down tree instead of up for build.zig discovery

* account for windows URIs in tests
2022-09-28 23:12:34 -04:00
Techatrix
5fa7656314 update snippets 2022-09-25 03:09:54 +02:00
Techatrix
176bf17d15 remove sessions.zig 2022-09-25 02:44:38 +02:00
Techatrix
e9e9571fe5
avoid config copy for document store (#669) 2022-09-21 21:31:48 -04:00
Techatrix
7f4f002380
Testing improvements (#662) 2022-09-18 22:47:06 +00:00
Techatrix
e28549fa7d
Completely overhaul offsets.zig (#643)
* completely overhaul offsets.zig
2022-09-16 00:33:49 +00:00
Techatrix
5c9c0c316c fix warning in session test 2022-09-12 00:05:26 +02:00
Techatrix
6933e1598a move updated units_test.zig into tests directory 2022-09-11 00:07:01 +02:00
Techatrix
bcf8bc7094 set custom config for tests 2022-09-03 15:21:56 +02:00
Techatrix
8d72c802ff use comptime in tests.zig 2022-08-26 20:23:07 +02:00
Techatrix
865a2713cd add tests for cimport 2022-08-26 16:53:44 +02:00
Techatrix
4c0fe6428d add tests for inlay hints 2022-08-26 16:53:02 +02:00
Techatrix
f0b71f3861 add tests for semantic tokens 2022-08-26 16:51:43 +02:00
Techatrix
f6082e837d prepare testing framework
- allow source files from tests as a package
- use `tests/tests.zig` as the entry point
- add `Context.requestAlloc`
2022-08-26 16:45:22 +02:00
Techatrix
dc3199cffa unmanage all the code 2022-08-23 12:44:26 +02:00
Techatrix
c9d41650da fix 'Cannot resolve std library import' 2022-08-05 13:01:39 +02:00
Techatrix
5d4c68e9c5 Add missing tests 2022-08-03 23:29:03 +02:00
Techatrix
e562d4cf4c move Context into Context.zig 2022-08-03 23:11:55 +02:00
Techatrix
fca78a98b0 move ArenaAllocator into Server 2022-08-01 00:44:07 +02:00
Techatrix
805148125c revive session tests 2022-07-31 23:39:33 +02:00
Auguste Rame
913d6aee9d
Fix tests for real? (#562)
* Actually a horrible patch
2022-07-25 16:09:54 -04:00
Techatrix
0ecdeeecb1
Implement textDocument/inlayHint (#559)
* Implement textDocument/inlayHint

* Add corresponding Config options
2022-07-24 07:38:13 -04:00
Auguste Rame
37f79c86fa
Fix CI?
I really need to fix Zig's error handling on message send failure, it's so bad 😭
2022-07-11 20:28:50 +02:00
Auguste Rame
3f880a0c40 Tests pass? 2022-07-08 04:26:31 -04:00
ryuukk
7fa58ae1b8 Update test 2022-07-07 03:09:44 -04:00
Lee Cannon
ffe9598fbd
fix tests 2022-05-29 18:45:08 +01:00
Lee Cannon
4f04f7dac0
std.ChildProcess.init cannot error 2022-05-29 18:18:57 +01:00
Meghan Denny
09d51af161 handle AccessDenied when making 'builtin.zig' fill-in 2021-12-29 22:53:30 -08:00
Meghan Denny
304c9bec2f only print stderr 2021-12-29 22:47:12 -08:00
Meghan Denny
81818e3319 investing in debugging tools 2021-12-29 22:44:24 -08:00
Meghan Denny
56fccdefd5 add back FIXME comment 2021-12-29 22:24:33 -08:00
Meghan Denny
29e43a60ae cant repro locally 2021-12-29 22:23:01 -08:00
Meghan Denny
578265f3e6 cleanup tests 2021-12-29 21:56:17 -08:00
Meghan Denny
b99c13ceef match other tests 2021-12-29 21:45:32 -08:00
Lee Cannon
90f8109639 Update to use @import("builtin") where required 2021-10-07 12:53:31 +01:00
Lee Cannon
fbdc07d4b1 make tests pass 2021-09-01 15:57:37 +01:00
Lee Cannon
b1fee2dad2 Fix tests 2021-06-26 21:13:00 +01:00
Alexandros Naskos
f8b9d3bfcb
Fixed zls path in session tests 2021-05-03 15:46:24 +03:00
Alexandros Naskos
91643c04c9
Fixed integer overflow in semantic_tokens.Builder.handleComments 2021-05-03 15:36:29 +03:00
Alexandros Naskos
0e5a91d4fc
Fixed zls path in session tests 2021-05-03 14:08:59 +03:00
Jonathan Hähne
f61c9d8d4f Run zig fmt 2021-04-15 18:17:06 +02:00
Jonathan Hähne
b90c9b49ac Fix inclusion of toplevel doc comments, remove @async recursion in
writeNodeTokens, add a few regression tests
2021-04-15 11:07:43 +02:00
Jonathan Hähne
0e4f4c1e04 Improve testing infrastructure
It should now be a bit easier to set up a test and see how it failed.
2021-04-07 15:10:18 +02:00
Alexandros Naskos
88d79a769c
Fix session tests 2021-04-05 12:05:11 +03:00
Alexandros Naskos
f4e777ed7b
Fix session tests 2021-04-05 12:03:08 +03:00
Alexandros Naskos
ccf15a304d
Fix session tests 2021-04-03 19:05:55 +03:00
Jonathan Hähne
ec1ee55dee Accelerate symbolReferencesInternal by another factor of 2 and activate unit tests 2021-03-29 14:08:38 +02:00
Alexandros Naskos
3a8d4c7bfb
Fix completions test 2021-03-28 17:47:10 +03:00
rhysd
6057d290b4 Fix falsy value for filterText and insertText
'filterText' and 'insertText' fields of 'CompletionItem' can only have
"" or undefined as falsy value.

https://github.com/microsoft/language-server-protocol/issues/1222
2021-03-15 20:20:38 +09:00
Luuk de Gram
85937d48ca
Semantic token + scope fixes:
- Highlights pipes of loops/elses payloads correctly
- New ast structure counts last token as the variable itself and not the '}' so change scope checking to '<=' instead of '<'
2021-03-10 10:02:07 +01:00
Alexandros Naskos
c98c44460c
Fixed session tests 2021-01-28 11:20:13 +02:00
Alexandros Naskos
eefee4759c
Fixed compilation for latest zig master 2021-01-07 10:35:36 +02:00
Lee Cannon
2a9edf243d Fixed string printing with {s} format specifier 2021-01-04 17:51:26 +00:00
Alexandros Naskos
67b5adc04e
Fix session tests 2020-11-15 22:24:29 +02:00
Alexandros Naskos
bf7f6cd5e9
Corrected semantic token server provider struct 2020-11-06 15:55:00 +02:00
Alexandros Naskos
f363a1fbdb
Fixed session tests 2020-11-06 12:59:21 +02:00
Alexandros Naskos
d877019abe
Removed struct, enum, opaque, union token types, added them to token modifiers 2020-11-06 11:03:21 +02:00
Alexandros Naskos
abcccb5d85
Fixed session tests 2020-11-06 10:24:37 +02:00
Alexandros Naskos
307ac34d4a
Fixed session tests. 2020-11-04 13:00:55 +02:00
Tadeo Kondrak
b52817cd8f
Update to LSP version 3.16 semantic tokens protocol 2020-09-25 15:31:54 -06:00