mirror of
https://github.com/neovim/neovim.git
synced 2025-10-21 17:21:49 +00:00
lua: Add highlight.on_yank (#12279)
* add lua function to highlight yanked region * extract namespace, better naming, default values * add default for event argument * free timer * factor out mark to position calculation * d'oh * make sure timer stops before callback (cf. luv example) * factor out timer, more documentation * fixup * validate function argument for schedule * fix block selection past eol * correct handling of multibyte characters * move arguments around, some cleanup * move utility functions to vim.lua * use anonymous namespaces, avoid local api * rename function * add test for schedule_fn * fix indent * turn hl-yank into proper (hightlight) module * factor out position-to-region function mark extraction now part of highlight.on_yank * rename schedule_fn to defer_fn * add test for vim.region * todo: handle double-width characters * remove debug printout * do not shadow arguments * defer also callable table * whitespace change * move highlight to vim/highlight.lua * add documentation * add @return documentation * test: add check before vim.defer fires * doc: fixup
This commit is contained in:
@@ -1046,4 +1046,24 @@ describe('lua stdlib', function()
|
||||
eq({}, exec_lua[[return {re1:match_line(0, 1, 1, 7)}]])
|
||||
eq({0,3}, exec_lua[[return {re1:match_line(0, 1, 0, 7)}]])
|
||||
end)
|
||||
end)
|
||||
|
||||
it('vim.defer_fn', function()
|
||||
exec_lua [[
|
||||
vim.g.test = 0
|
||||
vim.defer_fn(function() vim.g.test = 1 end, 10)
|
||||
]]
|
||||
eq(0, exec_lua[[return vim.g.test]])
|
||||
exec_lua [[vim.cmd("sleep 10m")]]
|
||||
eq(1, exec_lua[[return vim.g.test]])
|
||||
end)
|
||||
|
||||
it('vim.region', function()
|
||||
helpers.insert(helpers.dedent( [[
|
||||
text tααt tααt text
|
||||
text tαxt txtα tex
|
||||
text tαxt tαxt
|
||||
]]))
|
||||
eq({5,15}, exec_lua[[ return vim.region(0,{1,5},{1,14},'v',true)[1] ]])
|
||||
end)
|
||||
|
||||
end)
|
||||
|
Reference in New Issue
Block a user