test(lsp): fix unstable tests for semantic tokens

add screen:expect() calls after insert() to make sure the screen has
been drawn before we assert the state of the semantic tokens table

(cherry picked from commit e97b6536bb)
This commit is contained in:
John Drouhard
2023-04-22 11:46:07 -05:00
committed by github-actions[bot]
parent d7b720f3d8
commit d6deffad57

View File

@@ -629,6 +629,26 @@ describe('semantic token highlighting', function()
marked = true,
},
},
expected_screen = function()
screen:expect{grid=[[
char* {7:foo} = "\n"^; |
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
|
]]}
end,
},
{
it = 'clangd-15 on C++',
@@ -741,6 +761,26 @@ int main()
marked = true,
},
},
expected_screen = function()
screen:expect{grid=[[
#include <iostream> |
int {8:main}() |
{ |
#ifdef {5:__cplusplus} |
const int {7:x} = 1; |
{4:std}::{2:cout} << {2:x} << {4:std}::{3:endl}; |
{6: #else} |
{6: comment} |
{6: #endif} |
^} |
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
|
]]}
end,
},
{
it = 'sumneko_lua',
@@ -782,6 +822,26 @@ b = "as"]],
marked = true,
},
},
expected_screen = function()
screen:expect{grid=[[
{6:-- comment} |
local {7:a} = 1 |
{2:b} = "as^" |
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
|
]]}
end,
},
{
it = 'rust-analyzer',
@@ -892,6 +952,26 @@ b = "as"]],
marked = true,
},
},
expected_screen = function()
screen:expect{grid=[[
pub fn {8:main}() { |
break rust; |
//{6:/ what?} |
} |
^ |
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
|
]]}
end,
},
}) do
it(test.it, function()
@@ -918,6 +998,8 @@ b = "as"]],
insert(test.text)
test.expected_screen()
local highlights = exec_lua([[
local semantic_tokens = vim.lsp.semantic_tokens
return semantic_tokens.__STHighlighter.active[bufnr].client_state[client_id].current_result.highlights