" Tests for 'conceal'. " Also see test88.in (should be converted to a test function here). if !has('conceal') finish endif source screendump.vim if !CanRunVimInTerminal() finish endif func Test_conceal_two_windows() call writefile([ \ 'let lines = ["one one one one one", "two |hidden| here", "three |hidden| three"]', \ 'call setline(1, lines)', \ 'syntax match test /|hidden|/ conceal', \ 'set conceallevel=2', \ 'set concealcursor=', \ 'exe "normal /here\r"', \ 'new', \ 'call setline(1, lines)', \ 'call setline(4, "Second window")', \ 'syntax match test /|hidden|/ conceal', \ 'set conceallevel=2', \ 'set concealcursor=nc', \ 'exe "normal /here\r"', \ ], 'XTest_conceal') " Check that cursor line is concealed let buf = RunVimInTerminal('-S XTest_conceal', {}) call VerifyScreenDump(buf, 'Test_conceal_two_windows_01', {}) " Check that with concealed text vertical cursor movement is correct. call term_sendkeys(buf, "k") call VerifyScreenDump(buf, 'Test_conceal_two_windows_02', {}) " Check that with cursor line is not concealed call term_sendkeys(buf, "j") call term_sendkeys(buf, ":set concealcursor=\r") call VerifyScreenDump(buf, 'Test_conceal_two_windows_03', {}) " Check that with cursor line is not concealed when moving cursor down call term_sendkeys(buf, "j") call VerifyScreenDump(buf, 'Test_conceal_two_windows_04', {}) " Check that with cursor line is not concealed when switching windows call term_sendkeys(buf, "\\") call VerifyScreenDump(buf, 'Test_conceal_two_windows_05', {}) " Check that with cursor line is only concealed in Normal mode call term_sendkeys(buf, ":set concealcursor=n\r") call VerifyScreenDump(buf, 'Test_conceal_two_windows_06n', {}) call term_sendkeys(buf, "a") call VerifyScreenDump(buf, 'Test_conceal_two_windows_06i', {}) call term_sendkeys(buf, "\/e") call VerifyScreenDump(buf, 'Test_conceal_two_windows_06c', {}) call term_sendkeys(buf, "\v") call VerifyScreenDump(buf, 'Test_conceal_two_windows_06v', {}) call term_sendkeys(buf, "\") " Check that with cursor line is only concealed in Insert mode call term_sendkeys(buf, ":set concealcursor=i\r") call VerifyScreenDump(buf, 'Test_conceal_two_windows_07n', {}) call term_sendkeys(buf, "a") call VerifyScreenDump(buf, 'Test_conceal_two_windows_07i', {}) call term_sendkeys(buf, "\/e") call VerifyScreenDump(buf, 'Test_conceal_two_windows_07c', {}) call term_sendkeys(buf, "\v") call VerifyScreenDump(buf, 'Test_conceal_two_windows_07v', {}) call term_sendkeys(buf, "\") " Check that with cursor line is only concealed in Command mode call term_sendkeys(buf, ":set concealcursor=c\r") call VerifyScreenDump(buf, 'Test_conceal_two_windows_08n', {}) call term_sendkeys(buf, "a") call VerifyScreenDump(buf, 'Test_conceal_two_windows_08i', {}) call term_sendkeys(buf, "\/e") call VerifyScreenDump(buf, 'Test_conceal_two_windows_08c', {}) call term_sendkeys(buf, "\v") call VerifyScreenDump(buf, 'Test_conceal_two_windows_08v', {}) call term_sendkeys(buf, "\") " Check that with cursor line is only concealed in Visual mode call term_sendkeys(buf, ":set concealcursor=v\r") call VerifyScreenDump(buf, 'Test_conceal_two_windows_09n', {}) call term_sendkeys(buf, "a") call VerifyScreenDump(buf, 'Test_conceal_two_windows_09i', {}) call term_sendkeys(buf, "\/e") call VerifyScreenDump(buf, 'Test_conceal_two_windows_09c', {}) call term_sendkeys(buf, "\v") call VerifyScreenDump(buf, 'Test_conceal_two_windows_09v', {}) call term_sendkeys(buf, "\") " Check moving the cursor while in insert mode. call term_sendkeys(buf, ":set concealcursor=\r") call term_sendkeys(buf, "a") call VerifyScreenDump(buf, 'Test_conceal_two_windows_10', {}) call term_sendkeys(buf, "\") call VerifyScreenDump(buf, 'Test_conceal_two_windows_11', {}) call term_sendkeys(buf, "\") " Check the "o" command call VerifyScreenDump(buf, 'Test_conceal_two_windows_12', {}) call term_sendkeys(buf, "o") call VerifyScreenDump(buf, 'Test_conceal_two_windows_13', {}) call term_sendkeys(buf, "\") " clean up call StopVimInTerminal(buf) call delete('XTest_conceal') endfunc func Test_conceal_with_cursorline() " Opens a help window, where 'conceal' is set, switches to the other window " where 'cursorline' needs to be updated when the cursor moves. call writefile([ \ 'set cursorline', \ 'normal othis is a test', \ 'new', \ 'call setline(1, ["one", "two", "three", "four", "five"])', \ 'set ft=help', \ 'normal M', \ ], 'XTest_conceal_cul') let buf = RunVimInTerminal('-S XTest_conceal_cul', {}) call VerifyScreenDump(buf, 'Test_conceal_cul_01', {}) call term_sendkeys(buf, ":wincmd w\r") call VerifyScreenDump(buf, 'Test_conceal_cul_02', {}) call term_sendkeys(buf, "k") call VerifyScreenDump(buf, 'Test_conceal_cul_03', {}) " clean up call StopVimInTerminal(buf) call delete('XTest_conceal_cul') endfunc