aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorThomas Vigouroux <tomvig38@gmail.com>2022-01-13 08:50:01 +0000
committerGitHub <noreply@github.com>2022-01-13 08:50:01 +0000
commitf9b3b2dcfc199c212634e4d53bc6f7d3b6486aea (patch)
tree8fad87dbcaa15ae0c0181183e06500df4f8bff39 /test
parent3ee1ba35a79be452951ac35e4f45e779332657ed (diff)
parent9c26939f75be8057d8880689292a729e8d8c9306 (diff)
downloadrneovim-f9b3b2dcfc199c212634e4d53bc6f7d3b6486aea.tar.gz
rneovim-f9b3b2dcfc199c212634e4d53bc6f7d3b6486aea.tar.bz2
rneovim-f9b3b2dcfc199c212634e4d53bc6f7d3b6486aea.zip
Merge pull request #16945 from theHamsta/cached-queries
perf(treesitter): cache query parsing
Diffstat (limited to 'test')
-rw-r--r--test/functional/treesitter/parser_spec.lua21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/functional/treesitter/parser_spec.lua b/test/functional/treesitter/parser_spec.lua
index 911fa017ab..44a7f00d8b 100644
--- a/test/functional/treesitter/parser_spec.lua
+++ b/test/functional/treesitter/parser_spec.lua
@@ -167,6 +167,27 @@ void ui_refresh(void)
eq('variable', ret)
end)
+ it("supports caching queries", function()
+ local long_query = query:rep(100)
+ local first_run = exec_lua ([[
+ local before = vim.loop.hrtime()
+ cquery = vim.treesitter.parse_query("c", ...)
+ local after = vim.loop.hrtime()
+ return after - before
+ ]], long_query)
+
+ local subsequent_runs = exec_lua ([[
+ local before = vim.loop.hrtime()
+ for i=1,100,1 do
+ cquery = vim.treesitter.parse_query("c", ...)
+ end
+ local after = vim.loop.hrtime()
+ return after - before
+ ]], long_query)
+
+ assert.True(1000 * subsequent_runs < first_run)
+ end)
+
it('support query and iter by capture', function()
insert(test_text)