mirror of
https://github.com/vim/vim.git
synced 2025-10-03 05:14:07 -04:00
patch 8.2.0964: TextYankPost does not provide info about Visual selection
Problem: TextYankPost does not provide info about Visual selection. Solution: Add the 'visual' key in v:event. (closes #6249)
This commit is contained in:
@@ -1154,6 +1154,8 @@ TextYankPost After text has been yanked or deleted in the
|
|||||||
register.
|
register.
|
||||||
regtype Type of the register, see
|
regtype Type of the register, see
|
||||||
|getregtype()|.
|
|getregtype()|.
|
||||||
|
visual True if the operation is
|
||||||
|
performed on a |Visual| area.
|
||||||
Not triggered when |quote_| is used nor when
|
Not triggered when |quote_| is used nor when
|
||||||
called recursively.
|
called recursively.
|
||||||
It is not allowed to change the buffer text,
|
It is not allowed to change the buffer text,
|
||||||
|
@@ -928,6 +928,8 @@ yank_do_autocmd(oparg_T *oap, yankreg_T *reg)
|
|||||||
}
|
}
|
||||||
dict_add_string(v_event, "regtype", buf);
|
dict_add_string(v_event, "regtype", buf);
|
||||||
|
|
||||||
|
dict_add_bool(v_event, "visual", oap->is_VIsual);
|
||||||
|
|
||||||
// Lock the dictionary and its keys
|
// Lock the dictionary and its keys
|
||||||
dict_set_items_ro(v_event);
|
dict_set_items_ro(v_event);
|
||||||
|
|
||||||
|
@@ -1712,23 +1712,27 @@ func Test_TextYankPost()
|
|||||||
|
|
||||||
norm "ayiw
|
norm "ayiw
|
||||||
call assert_equal(
|
call assert_equal(
|
||||||
\{'regcontents': ['foo'], 'regname': 'a', 'operator': 'y', 'regtype': 'v'},
|
\{'regcontents': ['foo'], 'regname': 'a', 'operator': 'y', 'regtype': 'v', 'visual': v:false},
|
||||||
\g:event)
|
\g:event)
|
||||||
norm y_
|
norm y_
|
||||||
call assert_equal(
|
call assert_equal(
|
||||||
\{'regcontents': ['foo'], 'regname': '', 'operator': 'y', 'regtype': 'V'},
|
\{'regcontents': ['foo'], 'regname': '', 'operator': 'y', 'regtype': 'V', 'visual': v:false},
|
||||||
|
\g:event)
|
||||||
|
norm Vy
|
||||||
|
call assert_equal(
|
||||||
|
\{'regcontents': ['foo'], 'regname': '', 'operator': 'y', 'regtype': 'V', 'visual': v:true},
|
||||||
\g:event)
|
\g:event)
|
||||||
call feedkeys("\<C-V>y", 'x')
|
call feedkeys("\<C-V>y", 'x')
|
||||||
call assert_equal(
|
call assert_equal(
|
||||||
\{'regcontents': ['f'], 'regname': '', 'operator': 'y', 'regtype': "\x161"},
|
\{'regcontents': ['f'], 'regname': '', 'operator': 'y', 'regtype': "\x161", 'visual': v:true},
|
||||||
\g:event)
|
\g:event)
|
||||||
norm "xciwbar
|
norm "xciwbar
|
||||||
call assert_equal(
|
call assert_equal(
|
||||||
\{'regcontents': ['foo'], 'regname': 'x', 'operator': 'c', 'regtype': 'v'},
|
\{'regcontents': ['foo'], 'regname': 'x', 'operator': 'c', 'regtype': 'v', 'visual': v:false},
|
||||||
\g:event)
|
\g:event)
|
||||||
norm "bdiw
|
norm "bdiw
|
||||||
call assert_equal(
|
call assert_equal(
|
||||||
\{'regcontents': ['bar'], 'regname': 'b', 'operator': 'd', 'regtype': 'v'},
|
\{'regcontents': ['bar'], 'regname': 'b', 'operator': 'd', 'regtype': 'v', 'visual': v:false},
|
||||||
\g:event)
|
\g:event)
|
||||||
|
|
||||||
call assert_equal({}, v:event)
|
call assert_equal({}, v:event)
|
||||||
|
@@ -754,6 +754,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
964,
|
||||||
/**/
|
/**/
|
||||||
963,
|
963,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user