commit e0aa1d87e81ddf4efec96fad8365b3ea1aee1c26
parent 1fe94cb008e062ba42e09c284e32cf10c912689e
Author: Lewis Russell <lewis6991@gmail.com>
Date: Fri, 17 Jun 2022 01:22:43 +0100
test(treesitter): add benchmark #18989
add benchmark from #18109
Diffstat:
1 file changed, 53 insertions(+), 0 deletions(-)
diff --git a/test/benchmark/treesitter_spec.lua b/test/benchmark/treesitter_spec.lua
@@ -0,0 +1,53 @@
+local helpers = require('test.functional.helpers')(after_each)
+
+local clear = helpers.clear
+local exec_lua = helpers.exec_lua
+
+describe('treesitter perf', function()
+
+ setup(function()
+ clear()
+ end)
+
+ it('can handle large folds', function()
+ helpers.command'edit ./src/nvim/eval.c'
+ exec_lua[[
+ local parser = vim.treesitter.get_parser(0, "c", {})
+ vim.treesitter.highlighter.new(parser)
+
+ local function keys(k)
+ vim.api.nvim_feedkeys(k, 't', true)
+ end
+
+ vim.opt.foldmethod = "manual"
+ vim.opt.lazyredraw = false
+
+ vim.cmd '1000,7000fold'
+ vim.cmd '999'
+
+ local function mk_keys(n)
+ local acc = ""
+ for _ = 1, n do
+ acc = acc .. "j"
+ end
+ for _ = 1, n do
+ acc = acc .. "k"
+ end
+
+ return "qq" .. acc .. "q"
+ end
+
+ local start = vim.loop.hrtime()
+ keys(mk_keys(10))
+
+ for _ = 1, 100 do
+ keys "@q"
+ vim.cmd'redraw!'
+ end
+
+ return vim.loop.hrtime() - start
+ ]]
+
+ end)
+
+end)