mirror of
https://github.com/vim/vim.git
synced 2025-09-29 04:34:16 -04:00
patch 8.1.0689: undo with text properties not tested
Problem: Undo with text properties not tested. Solution: Add a test function.
This commit is contained in:
@@ -348,6 +348,59 @@ func Test_prop_byteoff()
|
|||||||
call prop_type_delete('comment')
|
call prop_type_delete('comment')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_prop_undo()
|
||||||
|
new
|
||||||
|
call prop_type_add('comment', {'highlight': 'Directory'})
|
||||||
|
call setline(1, ['oneone', 'twotwo', 'three'])
|
||||||
|
" Set 'undolevels' to break changes into undo-able pieces.
|
||||||
|
set ul&
|
||||||
|
|
||||||
|
call prop_add(1, 3, {'end_col': 5, 'type': 'comment'})
|
||||||
|
let expected = [{'col': 3, 'length': 2, 'id': 0, 'type': 'comment', 'start': 1, 'end': 1} ]
|
||||||
|
call assert_equal(expected, prop_list(1))
|
||||||
|
|
||||||
|
" Insert a character, then undo.
|
||||||
|
exe "normal 0lllix\<Esc>"
|
||||||
|
set ul&
|
||||||
|
let expected[0].length = 3
|
||||||
|
call assert_equal(expected, prop_list(1))
|
||||||
|
undo
|
||||||
|
let expected[0].length = 2
|
||||||
|
call assert_equal(expected, prop_list(1))
|
||||||
|
|
||||||
|
" Delete a character, then undo
|
||||||
|
exe "normal 0lllx"
|
||||||
|
set ul&
|
||||||
|
let expected[0].length = 1
|
||||||
|
call assert_equal(expected, prop_list(1))
|
||||||
|
undo
|
||||||
|
let expected[0].length = 2
|
||||||
|
call assert_equal(expected, prop_list(1))
|
||||||
|
|
||||||
|
" Delete the line, then undo
|
||||||
|
1d
|
||||||
|
set ul&
|
||||||
|
call assert_equal([], prop_list(1))
|
||||||
|
undo
|
||||||
|
call assert_equal(expected, prop_list(1))
|
||||||
|
|
||||||
|
" Insert a character, delete two characters, then undo with "U"
|
||||||
|
exe "normal 0lllix\<Esc>"
|
||||||
|
set ul&
|
||||||
|
let expected[0].length = 3
|
||||||
|
call assert_equal(expected, prop_list(1))
|
||||||
|
exe "normal 0lllxx"
|
||||||
|
set ul&
|
||||||
|
let expected[0].length = 1
|
||||||
|
call assert_equal(expected, prop_list(1))
|
||||||
|
normal U
|
||||||
|
let expected[0].length = 2
|
||||||
|
call assert_equal(expected, prop_list(1))
|
||||||
|
|
||||||
|
bwipe!
|
||||||
|
call prop_type_delete('comment')
|
||||||
|
endfunc
|
||||||
|
|
||||||
" screenshot test with textprop highlighting
|
" screenshot test with textprop highlighting
|
||||||
funct Test_textprop_screenshots()
|
funct Test_textprop_screenshots()
|
||||||
if !CanRunVimInTerminal() || &encoding != 'utf-8'
|
if !CanRunVimInTerminal() || &encoding != 'utf-8'
|
||||||
|
@@ -799,6 +799,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 */
|
||||||
|
/**/
|
||||||
|
689,
|
||||||
/**/
|
/**/
|
||||||
688,
|
688,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user