diff options
author | Thomas Vigouroux <tomvig38@gmail.com> | 2022-01-13 08:50:01 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-13 08:50:01 +0000 |
commit | f9b3b2dcfc199c212634e4d53bc6f7d3b6486aea (patch) | |
tree | 8fad87dbcaa15ae0c0181183e06500df4f8bff39 /test | |
parent | 3ee1ba35a79be452951ac35e4f45e779332657ed (diff) | |
parent | 9c26939f75be8057d8880689292a729e8d8c9306 (diff) | |
download | rneovim-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.lua | 21 |
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) |