forked from aniani/vim
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Problem: Text properties not adjusted when accepting spell suggestion. Solution: Adjust text properties when text changes. (closes #10414)
This commit is contained in:
@@ -1889,4 +1889,49 @@ func Test_prop_find_prev_on_same_line()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_prop_spell()
|
||||
new
|
||||
set spell
|
||||
call AddPropTypes()
|
||||
|
||||
call setline(1, ["helo world", "helo helo helo"])
|
||||
call prop_add(1, 1, #{type: 'one', length: 4})
|
||||
call prop_add(1, 6, #{type: 'two', length: 5})
|
||||
call prop_add(2, 1, #{type: 'three', length: 4})
|
||||
call prop_add(2, 6, #{type: 'three', length: 4})
|
||||
call prop_add(2, 11, #{type: 'three', length: 4})
|
||||
|
||||
" The first prop over 'helo' increases its length after the word is corrected
|
||||
" to 'Hello', the second one is shifted to the right.
|
||||
let expected = [
|
||||
\ {'id': 0, 'col': 1, 'type_bufnr': 0, 'end': 1, 'type': 'one',
|
||||
\ 'length': 5, 'start': 1},
|
||||
\ {'id': 0, 'col': 7, 'type_bufnr': 0, 'end': 1, 'type': 'two',
|
||||
\ 'length': 5, 'start': 1}
|
||||
\ ]
|
||||
call feedkeys("z=1\<CR>", 'xt')
|
||||
|
||||
call assert_equal('Hello world', getline(1))
|
||||
call assert_equal(expected, prop_list(1))
|
||||
|
||||
" Repeat the replacement done by z=
|
||||
spellrepall
|
||||
|
||||
let expected = [
|
||||
\ {'id': 0, 'col': 1, 'type_bufnr': 0, 'end': 1, 'type': 'three',
|
||||
\ 'length': 5, 'start': 1},
|
||||
\ {'id': 0, 'col': 7, 'type_bufnr': 0, 'end': 1, 'type': 'three',
|
||||
\ 'length': 5, 'start': 1},
|
||||
\ {'id': 0, 'col': 13, 'type_bufnr': 0, 'end': 1, 'type': 'three',
|
||||
\ 'length': 5, 'start': 1}
|
||||
\ ]
|
||||
call assert_equal('Hello Hello Hello', getline(2))
|
||||
call assert_equal(expected, prop_list(2))
|
||||
|
||||
call DeletePropTypes()
|
||||
set spell&
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
Reference in New Issue
Block a user