diff options
author | Christian Brabandt <cb@256bit.org> | 2023-08-22 21:44:10 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2023-08-22 21:44:10 +0200 |
commit | 757593c07a4f4ac43eb6c6e52fc299abc9bc08bc (patch) | |
tree | 67d0b94fc1f794596574acbae7055a465b662e9f /src/testdir | |
parent | 618e47d1cd93954bad26d47e5353b4f1432daa5e (diff) |
patch 9.0.1781: Problems when setting bin/paste optionv9.0.1781
Problem: Problems when setting bin/paste option
Solution: When setting binary/paste, remember that this also affects
depending options, so that :verbose set returns the right
location.
Mention if depending options for 'binary' or 'paste' have been reset
indirectly. Add a test to verify it works.
Also noticed as small bug, that the global option value for expandtab
was not reset when paste option is set, so fix that while at it.
closes: #12837
closes: #12879
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/test_options.vim | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim index 5bacebc35e..fec8d2a94c 100644 --- a/src/testdir/test_options.vim +++ b/src/testdir/test_options.vim @@ -1774,4 +1774,85 @@ func Test_set_option_window_global_local_all() bw! endfunc +func Test_paste_depending_options() + " setting the paste option, resets all dependent options + " and will be reported correctly using :verbose set <option>? + let lines =<< trim [CODE] + " set paste test + set autoindent + set expandtab + " disabled, because depends on compiled feature set + " set hkmap + " set revins + " set varsofttabstop=8,32,8 + set ruler + set showmatch + set smarttab + set softtabstop=4 + set textwidth=80 + set wrapmargin=10 + + source Xvimrc_paste2 + + redir > Xoutput_paste + verbose set expandtab? + verbose setg expandtab? + verbose setl expandtab? + redir END + + qall! + [CODE] + + call writefile(lines, 'Xvimrc_paste', 'D') + call writefile(['set paste'], 'Xvimrc_paste2', 'D') + if !RunVim([], lines, '--clean') + return + endif + + let result = readfile('Xoutput_paste')->filter('!empty(v:val)') + call assert_equal('noexpandtab', result[0]) + call assert_match("^\tLast set from .*Xvimrc_paste2 line 1$", result[1]) + call assert_equal('noexpandtab', result[2]) + call assert_match("^\tLast set from .*Xvimrc_paste2 line 1$", result[3]) + call assert_equal('noexpandtab', result[4]) + call assert_match("^\tLast set from .*Xvimrc_paste2 line 1$", result[5]) + + call delete('Xoutput_paste') +endfunc + +func Test_binary_depending_options() + " setting the paste option, resets all dependent options + " and will be reported correctly using :verbose set <option>? + let lines =<< trim [CODE] + " set binary test + set expandtab + + source Xvimrc_bin2 + + redir > Xoutput_bin + verbose set expandtab? + verbose setg expandtab? + verbose setl expandtab? + redir END + + qall! + [CODE] + + call writefile(lines, 'Xvimrc_bin', 'D') + call writefile(['set binary'], 'Xvimrc_bin2', 'D') + if !RunVim([], lines, '--clean') + return + endif + + let result = readfile('Xoutput_bin')->filter('!empty(v:val)') + call assert_equal('noexpandtab', result[0]) + call assert_match("^\tLast set from .*Xvimrc_bin2 line 1$", result[1]) + call assert_equal('noexpandtab', result[2]) + call assert_match("^\tLast set from .*Xvimrc_bin2 line 1$", result[3]) + call assert_equal('noexpandtab', result[4]) + call assert_match("^\tLast set from .*Xvimrc_bin2 line 1$", result[5]) + + call delete('Xoutput_bin') +endfunc + " vim: shiftwidth=2 sts=2 expandtab |