0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

runtime(doc): Update doc 52.6

Problem: the highlight-yank plugin exmaple provided in the doc behaves
	 incorrectly when selection is set to exclusive.

Solution: use a unified offset of 1 and pass 'exclusive: false' to
	  getregionpos(), while at it, also clarify when the
          TextYankPost autocommand triggers.

closes: #16866

Signed-off-by: Jim Zhou <jimzhouzzy@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Jim Zhou
2025-03-12 20:57:24 +01:00
committed by Christian Brabandt
parent 23473303b7
commit 7db96134c2
2 changed files with 8 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 9.1. Last change: 2025 Mar 08 *autocmd.txt* For Vim version 9.1. Last change: 2025 Mar 12
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1346,6 +1346,10 @@ TextYankPost After text has been yanked or deleted in the
called recursively. called recursively.
It is not allowed to change the buffer text, It is not allowed to change the buffer text,
see |textlock|. *E1064* see |textlock|. *E1064*
Also triggered indirectly when Vim tries to
become owner of the Visual selection because
of setting "autoselect" for 'guioptions' or
'clipboard'.
{only when compiled with the +eval feature} {only when compiled with the +eval feature}
*User* *User*

View File

@@ -1,4 +1,4 @@
*usr_52.txt* For Vim version 9.1. Last change: 2024 Oct 07 *usr_52.txt* For Vim version 9.1. Last change: 2025 Mar 12
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@@ -362,11 +362,10 @@ and it will be active next time you start Vim. |add-plugin|: >
endif endif
var [beg, end] = [getpos("'["), getpos("']")] var [beg, end] = [getpos("'["), getpos("']")]
var type = v:event.regtype ?? 'v' var type = v:event.regtype ?? 'v'
var pos = getregionpos(beg, end, {type: type}) var pos = getregionpos(beg, end, {type: type, exclusive: false})
var end_offset = (type == 'V' || v:event.inclusive) ? 1 : 0
var m = matchaddpos(hlgroup, pos->mapnew((_, v) => { var m = matchaddpos(hlgroup, pos->mapnew((_, v) => {
var col_beg = v[0][2] + v[0][3] var col_beg = v[0][2] + v[0][3]
var col_end = v[1][2] + v[1][3] + end_offset var col_end = v[1][2] + v[1][3] + 1
return [v[0][1], col_beg, col_end - col_beg] return [v[0][1], col_beg, col_end - col_beg]
})) }))
var winid = win_getid() var winid = win_getid()