neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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:
Atest/benchmark/treesitter_spec.lua | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
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)