summaryrefslogtreecommitdiffstats
path: root/src/testdir
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2015-07-17 17:38:22 +0200
committerBram Moolenaar <Bram@vim.org>2015-07-17 17:38:22 +0200
commit537443018d41918639695a442c91b34ccec69fc3 (patch)
tree50cf32c1174d9bf6bc3c577a5245336d5b8b5f71 /src/testdir
parent34d72d4b6c1a2b04a214d8a49b7d22c97bc7a8bc (diff)
patch 7.4.786v7.4.786
Problem: It is not possible for a plugin to adjust to a changed setting. Solution: Add the OptionSet autocommand event. (Christian Brabandt)
Diffstat (limited to 'src/testdir')
-rw-r--r--src/testdir/Make_amiga.mak2
-rw-r--r--src/testdir/Make_dos.mak1
-rw-r--r--src/testdir/Make_ming.mak1
-rw-r--r--src/testdir/Make_os2.mak1
-rw-r--r--src/testdir/Make_vms.mms1
-rw-r--r--src/testdir/Makefile1
-rw-r--r--src/testdir/test_autocmd_option.in73
-rw-r--r--src/testdir/test_autocmd_option.ok131
8 files changed, 211 insertions, 0 deletions
diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak
index da4798980a..5128087dab 100644
--- a/src/testdir/Make_amiga.mak
+++ b/src/testdir/Make_amiga.mak
@@ -38,6 +38,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
test104.out test105.out test106.out test107.out \
test_argument_0count.out \
test_argument_count.out \
+ test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
test_changelist.out \
@@ -188,6 +189,7 @@ test106.out: test106.in
test107.out: test107.in
test_argument_0count.out: test_argument_0count.in
test_argument_count.out: test_argument_count.in
+test_autocmd_option.out: test_autocmd_option.in
test_autoformat_join.out: test_autoformat_join.in
test_breakindent.out: test_breakindent.in
test_changelist.out: test_changelist.in
diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak
index 6bb0577692..8c0169b494 100644
--- a/src/testdir/Make_dos.mak
+++ b/src/testdir/Make_dos.mak
@@ -37,6 +37,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
test105.out test106.out test107.out\
test_argument_0count.out \
test_argument_count.out \
+ test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
test_changelist.out \
diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak
index faa2294c39..2f0012462f 100644
--- a/src/testdir/Make_ming.mak
+++ b/src/testdir/Make_ming.mak
@@ -59,6 +59,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
test105.out test106.out test107.out \
test_argument_0count.out \
test_argument_count.out \
+ test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
test_changelist.out \
diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak
index b93408c82f..7277556b9d 100644
--- a/src/testdir/Make_os2.mak
+++ b/src/testdir/Make_os2.mak
@@ -39,6 +39,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
test105.out test106.out test107.out \
test_argument_0count.out \
test_argument_count.out \
+ test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
test_changelist.out \
diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms
index 1c6a56dc36..726c233529 100644
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -98,6 +98,7 @@ SCRIPT = test1.out test2.out test3.out test4.out test5.out \
test105.out test106.out test107.out \
test_argument_0count.out \
test_argument_count.out \
+ test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
test_changelist.out \
diff --git a/src/testdir/Makefile b/src/testdir/Makefile
index 1a3ff8509d..4d5aea78e6 100644
--- a/src/testdir/Makefile
+++ b/src/testdir/Makefile
@@ -35,6 +35,7 @@ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
test104.out test105.out test106.out test107.out \
test_argument_0count.out \
test_argument_count.out \
+ test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
test_changelist.out \
diff --git a/src/testdir/test_autocmd_option.in b/src/testdir/test_autocmd_option.in
new file mode 100644
index 0000000000..4d71c505f6
--- /dev/null
+++ b/src/testdir/test_autocmd_option.in
@@ -0,0 +1,73 @@
+Test for option autocommand
+
+STARTTEST
+:so small.vim
+:if !has("eval") || !has("autocmd") | 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)
+:" Write register now, because next test shouldn't output anything.
+:$put r
+:let @r=''
+:let g:testcase="\n14: Setting key option, shouldn't trigger\n"
+:let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
+:setlocal key=blah
+:setlocal key=
+:$put =g:testcase
+:%w! test.out
+:qa!
+ENDTEST
+dummy text
diff --git a/src/testdir/test_autocmd_option.ok b/src/testdir/test_autocmd_option.ok
new file mode 100644
index 0000000000..b66b8f6f66
--- /dev/null
+++ b/src/testdir/test_autocmd_option.ok
@@ -0,0 +1,131 @@
+Test for option autocommand
+
+STARTTEST
+:so small.vim
+:if !has("eval") || !has("autocmd") | 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)
+:" Write register now, because next test shouldn't output anything.
+:$put r
+:let @r=''
+:let g:testcase="\n14: Setting key option, shouldn't trigger\n"
+:let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
+:setlocal key=blah
+:setlocal key=
+:$put =g:testcase
+:%w! test.out
+:qa!
+ENDTEST
+dummy text
+
+1: Setting number option
+Expected: Name: <number>, Oldval: <0>, NewVal: <1>, Scope: <global>
+Autocmd Option: <number>, OldVal: <0>, NewVal: <1>, Scope: <global>
+
+2: Setting local number option
+Expected: Name: <number>, Oldval: <1>, NewVal: <0>, Scope: <local>
+Autocmd Option: <number>, OldVal: <1>, NewVal: <0>, Scope: <local>
+
+3: Setting global number option
+Expected: Name: <number>, Oldval: <1>, NewVal: <0>, Scope: <global>
+Autocmd Option: <number>, OldVal: <1>, NewVal: <0>, Scope: <global>
+
+4: Setting local autoindent option
+Expected: Name: <autoindent>, Oldval: <0>, NewVal: <1>, Scope: <local>
+Autocmd Option: <autoindent>, OldVal: <0>, NewVal: <1>, Scope: <local>
+
+5: Setting global autoindent option
+Expected: Name: <autoindent>, Oldval: <0>, NewVal: <1>, Scope: <global>
+Autocmd Option: <autoindent>, OldVal: <0>, NewVal: <1>, Scope: <global>
+
+6: Setting global autoindent option
+Expected: Name: <autoindent>, Oldval: <1>, NewVal: <0>, Scope: <global>
+Autocmd Option: <autoindent>, OldVal: <1>, NewVal: <0>, Scope: <global>
+
+7: Setting several global list and number option
+Expected: Name: <list>, Oldval: <0>, NewVal: <1>, Scope: <global>
+Autocmd Option: <list>, OldVal: <0>, NewVal: <1>, Scope: <global>
+
+7: Setting several global list and number option
+Expected: Name: <number>, Oldval: <0>, NewVal: <1>, Scope: <global>
+Autocmd Option: <number>, OldVal: <0>, NewVal: <1>, Scope: <global>
+
+8: Setting global acd
+Expected: Name: <autochdir>, Oldval: <0>, NewVal: <1>, Scope: <global>
+Autocmd Option: <autochdir>, OldVal: <0>, NewVal: <1>, Scope: <local>
+
+9: Setting global autoread
+Expected: Name: <autoread>, Oldval: <0>, NewVal: <1>, Scope: <global>
+Autocmd Option: <autoread>, OldVal: <0>, NewVal: <1>, Scope: <global>
+
+10: Setting local autoread
+Expected: Name: <autoread>, Oldval: <0>, NewVal: <1>, Scope: <local>
+Autocmd Option: <autoread>, OldVal: <1>, NewVal: <1>, Scope: <local>
+
+11: Setting global autoread
+Expected: Name: <autoread>, Oldval: <1>, NewVal: <0>, Scope: <global>
+Autocmd Option: <autoread>, OldVal: <1>, NewVal: <0>, Scope: <global>
+
+12: Setting option backspace through :let
+Expected: Name: <backspace>, Oldval: <>, NewVal: <eol,indent,start>, Scope: <global>
+Autocmd Option: <backspace>, OldVal: <>, NewVal: <eol,indent,start>, Scope: <global>
+
+13: Setting option backspace through setbufvar()
+Expected: Name: <backup>, Oldval: <>, NewVal: <1>, Scope: <local>
+Autocmd Option: <backup>, OldVal: <0>, NewVal: <1>, Scope: <local>
+
+14: Setting key option, shouldn't trigger