aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/lua/vim/hl.lua2
-rw-r--r--test/functional/lua/hl_spec.lua33
2 files changed, 34 insertions, 1 deletions
diff --git a/runtime/lua/vim/hl.lua b/runtime/lua/vim/hl.lua
index 070748d31e..a2b06c9727 100644
--- a/runtime/lua/vim/hl.lua
+++ b/runtime/lua/vim/hl.lua
@@ -182,7 +182,7 @@ function M.on_yank(opts)
vim.api.nvim__ns_set(yank_ns, { wins = { winid } })
M.range(bufnr, yank_ns, higroup, "'[", "']", {
regtype = event.regtype,
- inclusive = event.inclusive,
+ inclusive = true,
priority = opts.priority or M.priorities.user,
timeout = opts.timeout or 150,
})
diff --git a/test/functional/lua/hl_spec.lua b/test/functional/lua/hl_spec.lua
index 27629cf214..12be01e0a5 100644
--- a/test/functional/lua/hl_spec.lua
+++ b/test/functional/lua/hl_spec.lua
@@ -214,4 +214,37 @@ describe('vim.hl.on_yank', function()
vim.hl.range(0, ns, 'Search', { 0, 0 }, { 0, 0 }, { timeout = 0 })
end)
end)
+
+ it('highlights last character with exclusive motion', function()
+ local screen = Screen.new(60, 4)
+ screen:add_extra_attr_ids({
+ [100] = { foreground = Screen.colors.Blue, background = Screen.colors.Yellow, bold = true },
+ })
+ command('autocmd TextYankPost * lua vim.hl.on_yank{timeout=100000}')
+ api.nvim_buf_set_lines(0, 0, -1, true, {
+ [[foo(bar) 'baz']],
+ [[foo(bar) 'baz']],
+ })
+ n.feed('yw')
+ screen:expect([[
+ {2:^foo}(bar) 'baz' |
+ foo(bar) 'baz' |
+ {1:~ }|
+ |
+ ]])
+ n.feed("yi'")
+ screen:expect([[
+ foo(bar) '{2:^baz}' |
+ foo(bar) 'baz' |
+ {1:~ }|
+ |
+ ]])
+ n.feed('yvj')
+ screen:expect([[
+ foo(bar) '{2:^baz'} |
+ {2:foo(bar) '}baz' |
+ {1:~ }|
+ |
+ ]])
+ end)
end)