From 118ae7e5ed6cfab6a49ec70c21da2b850161289c Mon Sep 17 00:00:00 2001 From: altermo <107814000+altermo@users.noreply.github.com> Date: Thu, 11 Jul 2024 18:16:51 +0200 Subject: fix(tohtml): support ranges again --- runtime/plugin/tohtml.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'runtime/plugin') diff --git a/runtime/plugin/tohtml.lua b/runtime/plugin/tohtml.lua index 79f2794a40..0cb4562938 100644 --- a/runtime/plugin/tohtml.lua +++ b/runtime/plugin/tohtml.lua @@ -5,8 +5,8 @@ vim.g.loaded_2html_plugin = true vim.api.nvim_create_user_command('TOhtml', function(args) local outfile = args.args ~= '' and args.args or vim.fn.tempname() .. '.html' - local html = require('tohtml').tohtml() + local html = require('tohtml').tohtml(0, { range = { args.line1, args.line2 } }) vim.fn.writefile(html, outfile) vim.cmd.split(outfile) vim.bo.filetype = 'html' -end, { bar = true, nargs = '?' }) +end, { bar = true, nargs = '?', range = '%' }) -- cgit From cf44121f7fb6f55a22e644a1e5e1f1dc6b90c27a Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 25 Aug 2024 06:07:43 +0800 Subject: vim-patch:9.1.0694: matchparen is slow on a long line (#30134) Problem: The matchparen plugin is slow on a long line. Solution: Don't use a regexp to get char at and before cursor. (zeertzjq) Example: ```vim call setline(1, repeat(' foobar', 100000)) runtime plugin/matchparen.vim normal! $hhhhhhhh ``` closes: vim/vim#15568 https://github.com/vim/vim/commit/81e7513c86459c40676bd983f73c2722096d67a9 --- runtime/plugin/matchparen.vim | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'runtime/plugin') diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim index 6c061c9fb8..2899612dce 100644 --- a/runtime/plugin/matchparen.vim +++ b/runtime/plugin/matchparen.vim @@ -60,12 +60,8 @@ func s:Highlight_Matching_Pair() let before = 0 let text = getline(c_lnum) - let matches = matchlist(text, '\(.\)\=\%'.c_col.'c\(.\=\)') - if empty(matches) - let [c_before, c] = ['', ''] - else - let [c_before, c] = matches[1:2] - endif + let c_before = text->strpart(0, c_col - 1)->slice(-1) + let c = text->strpart(c_col - 1)->slice(0, 1) let plist = split(&matchpairs, '.\zs[:,]') let i = index(plist, c) if i < 0 -- cgit