diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2024-06-13 19:58:48 +0200 |
|---|---|---|
| committer | DanielGavin <danielgavin5@hotmail.com> | 2024-06-13 19:58:48 +0200 |
| commit | f330a19afa116a386166bce1133c1d64cf524d3c (patch) | |
| tree | 14d70187d3b3a9b1159dce213bea15b0b4119f1f /src/testing/testing.odin | |
| parent | 582a1b1c1b42065d3bd22bd0f23bfd3ec38cdae4 (diff) | |
| parent | 9e05f30ca31e0b42c37ddc70a89e3a0863757cd8 (diff) | |
Merge branch 'rename' of https://github.com/DanielGavin/ols into rename
Diffstat (limited to 'src/testing/testing.odin')
| -rw-r--r-- | src/testing/testing.odin | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/testing/testing.odin b/src/testing/testing.odin index 210db59..0d9c028 100644 --- a/src/testing/testing.odin +++ b/src/testing/testing.odin @@ -414,3 +414,36 @@ expect_reference_locations :: proc( } } } + +expect_semantic_tokens :: proc( + t: ^testing.T, + src: ^Source, + expected: []server.SemanticToken, +) { + setup(src) + defer teardown(src) + + + resolve_flag: server.ResolveReferenceFlag + symbols_and_nodes := server.resolve_entire_file( + src.document, + resolve_flag, + context.temp_allocator, + ) + + range := common.Range{end = {line = 9000000}} //should be enough + tokens := server.get_semantic_tokens(src.document, range, symbols_and_nodes) + + testing.expectf(t, len(expected) == len(tokens), "\nExpected %d tokens, but received %d", len(expected), len(tokens)) + + for i in 0..<min(len(expected), len(tokens)) { + e, a := expected[i], tokens[i] + testing.expectf(t, + e == a, + "\n[%d]: Expected \n(%d, %d, %d, %v, %w)\nbut received\n(%d, %d, %d, %v, %w)", + i, + e.delta_line, e.delta_char, e.len, e.type, e.modifiers, + a.delta_line, a.delta_char, a.len, a.type, a.modifiers, + ) + } +} |