patch 9.0.1578: SpellCap highlight not always updated when needed
Problem: SpellCap highlight not always updated when needed.
Solution: Handle updating line below closed fold and other situations where
only part of the window is redrawn. (Luuk van Baal, closes #12428,
closes #12420)
diff --git a/src/testdir/test_spell.vim b/src/testdir/test_spell.vim
index bd387f1..350077a 100644
--- a/src/testdir/test_spell.vim
+++ b/src/testdir/test_spell.vim
@@ -999,13 +999,26 @@
call VerifyScreenDump(buf, 'Test_spell_3', {})
" Deleting a full stop removes missing Cap in next line
- call term_sendkeys(buf, "5Gddk$x")
+ call term_sendkeys(buf, "5Gdd\<C-L>k$x")
call VerifyScreenDump(buf, 'Test_spell_4', {})
" Undo also updates the next line (go to command line to remove message)
call term_sendkeys(buf, "u:\<Esc>")
call VerifyScreenDump(buf, 'Test_spell_5', {})
+ " Folding an empty line does not remove Cap in next line
+ call term_sendkeys(buf, "uzfk:\<Esc>")
+ call VerifyScreenDump(buf, 'Test_spell_6', {})
+
+ " Folding the end of a sentence does not remove Cap in next line
+ " and editing a line does not remove Cap in current line
+ call term_sendkeys(buf, "Jzfkk$x")
+ call VerifyScreenDump(buf, 'Test_spell_7', {})
+
+ " Cap is correctly applied in the first row of a window
+ call term_sendkeys(buf, "\<C-E>\<C-L>")
+ call VerifyScreenDump(buf, 'Test_spell_8', {})
+
" clean up
call StopVimInTerminal(buf)
endfunc