view src/testdir/test_autocmd_option.in @ 10098:72e4b7f90465 v7.4.2320

commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b Author: Bram Moolenaar <Bram@vim.org> Date: Sat Sep 3 21:04:58 2016 +0200 patch 7.4.2320 Problem: Redraw problem when using 'incsearch'. Solution: Save the current view when deleting characters. (Christian Brabandt) Fix that the '" mark is set in the wrong position. Don't change the search start when using BS.
author Christian Brabandt <cb@256bit.org>
date Sat, 03 Sep 2016 21:15:06 +0200
parents 0b4e65cf84fb
children
line wrap: on
line source

Test for option autocommand

STARTTEST
:so small.vim
:if !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! test.out | qa! | endif
:fu! AutoCommand(match)
:	let c=g:testcase
:       let item=remove(g:options, 0)
:       let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Scope: <%s>\n", item[0], item[1], item[2], item[3])
:       let c.=printf("Autocmd Option: <%s>,", a:match)
:       let c.=printf(" OldVal: <%s>,", v:option_old)
:       let c.=printf(" NewVal: <%s>,", v:option_new)
:       let c.=printf(" Scope: <%s>\n", v:option_type)
:       call setreg('r', printf("%s\n%s", getreg('r'), c))
:endfu
:au OptionSet * :call AutoCommand(expand("<amatch>"))
:let g:testcase="1: Setting number option\n"
:let g:options=[['number', 0, 1, 'global']]
:set nu
:let g:testcase="2: Setting local number option\n"
:let g:options=[['number', 1, 0, 'local']]
:setlocal nonu
:let g:testcase="3: Setting global number option\n"
:let g:options=[['number', 1, 0, 'global']]
:setglobal nonu
:let g:testcase="4: Setting local autoindent option\n"
:let g:options=[['autoindent', 0, 1, 'local']]
:setlocal ai
:let g:testcase="5: Setting global autoindent option\n"
:let g:options=[['autoindent', 0, 1, 'global']]
:setglobal ai
:let g:testcase="6: Setting global autoindent option\n"
:let g:options=[['autoindent', 1, 0, 'global']]
:set ai!
: Should not print anything, use :noa
:noa :set nonu
:let g:testcase="7: Setting several global list and number option\n"
:let g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']]
:set list nu
:noa set nolist nonu
:let g:testcase="8: Setting global acd\n"
:let g:options=[['autochdir', 0, 1, 'global']]
:setlocal acd
:let g:testcase="9: Setting global autoread\n"
:let g:options=[['autoread', 0, 1, 'global']]
:set ar
:let g:testcase="10: Setting local autoread\n"
:let g:options=[['autoread', 0, 1, 'local']]
:setlocal ar
:let g:testcase="11: Setting global autoread\n"
:let g:options=[['autoread', 1, 0, 'global']]
:setglobal invar
:let g:testcase="12: Setting option backspace through :let\n"
:let g:options=[['backspace', '', 'eol,indent,start', 'global']]
:let &bs="eol,indent,start"
:let g:testcase="13: Setting option backspace through setbufvar()\n"
:let g:options=[['backup', '', '1', 'local']]
: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
:call setbufvar(1, '&l:bk', 1)
: "should trigger, use correct option name
:call setbufvar(1, '&backup', 1)
:let g:testcase="14: Setting number option using setwinvar\n"
:let g:options=[['number', 0, 1, 'local']]
:call setwinvar(0, '&number', 1)
:" Write register now, because next test shouldn't output anything.
:$put r
:let @r=''
:let g:testcase="\n15: Setting key option, shouldn't trigger\n"
:let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
:setlocal key=blah
:setlocal key=
:$put =g:testcase
:$put r
:/^dummy text/,$w! test.out
:qa!
ENDTEST
dummy text