aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjdrouhard <john@drouhard.dev>2023-04-22 17:08:28 -0500
committerGitHub <noreply@github.com>2023-04-23 00:08:28 +0200
commit540d6c595bc8e1b298dce51211b5d39e25e17d03 (patch)
tree64336eb2f6035881879d23c971fc63a7617b5914
parenteee97300ed0f528606e561ffaf43b17faefed612 (diff)
downloadrneovim-540d6c595bc8e1b298dce51211b5d39e25e17d03.tar.gz
rneovim-540d6c595bc8e1b298dce51211b5d39e25e17d03.tar.bz2
rneovim-540d6c595bc8e1b298dce51211b5d39e25e17d03.zip
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
-rw-r--r--test/functional/plugin/lsp/semantic_tokens_spec.lua82
1 files changed, 82 insertions, 0 deletions
diff --git a/test/functional/plugin/lsp/semantic_tokens_spec.lua b/test/functional/plugin/lsp/semantic_tokens_spec.lua
index ec4d20974d..d1ffb72ef5 100644
--- a/test/functional/plugin/lsp/semantic_tokens_spec.lua
+++ b/test/functional/plugin/lsp/semantic_tokens_spec.lua
@@ -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