Mercurial > vim
diff src/testdir/test_textprop.vim @ 18631:e2d9f4d030fa v8.1.2308
patch 8.1.2308: deleting text before zero-width textprop removes it
Commit: https://github.com/vim/vim/commit/ecafcc15ca92ecb9c6b41dbb3b0fcdf89c9eff69
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Nov 16 20:41:51 2019 +0100
patch 8.1.2308: deleting text before zero-width textprop removes it
Problem: Deleting text before zero-width textprop removes it.
Solution: Keep zero-width textprop when deleting text.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 16 Nov 2019 20:45:04 +0100 |
parents | 63d855ad505c |
children | 143d44d8f477 |
line wrap: on
line diff
--- a/src/testdir/test_textprop.vim +++ b/src/testdir/test_textprop.vim @@ -650,6 +650,35 @@ func Test_prop_undo() call prop_type_delete('comment') endfunc +func Test_prop_delete_text() + new + call prop_type_add('comment', {'highlight': 'Directory'}) + call setline(1, ['oneone', 'twotwo', 'three']) + + " zero length property + call prop_add(1, 3, {'type': 'comment'}) + let expected = [{'col': 3, 'length': 0, 'id': 0, 'type': 'comment', 'start': 1, 'end': 1} ] + call assert_equal(expected, prop_list(1)) + + " delete one char moves the property + normal! x + let expected = [{'col': 2, 'length': 0, 'id': 0, 'type': 'comment', 'start': 1, 'end': 1} ] + call assert_equal(expected, prop_list(1)) + + " delete char of the property has no effect + normal! lx + let expected = [{'col': 2, 'length': 0, 'id': 0, 'type': 'comment', 'start': 1, 'end': 1} ] + call assert_equal(expected, prop_list(1)) + + " delete more chars moves property to first column, is not deleted + normal! 0xxxx + let expected = [{'col': 1, 'length': 0, 'id': 0, 'type': 'comment', 'start': 1, 'end': 1} ] + call assert_equal(expected, prop_list(1)) + + bwipe! + call prop_type_delete('comment') +endfunc + " screenshot test with textprop highlighting func Test_textprop_screenshot_various() CheckScreendump