# HG changeset patch # User Bram Moolenaar # Date 1627237804 -7200 # Node ID c63a2d24b7e2f22c121fa8bf123bfbb59ea1c9fd # Parent e14bafcbce5ca86bc1eab7d202e221ff71d29de8 patch 8.2.3223: Vim: using {} block in autoloade omnifunc fails Commit: https://github.com/vim/vim/commit/ff34bee3a2d22f2ff7abd4519270b5518082c33d Author: Bram Moolenaar Date: Sun Jul 25 20:27:06 2021 +0200 patch 8.2.3223: Vim: using {} block in autoloade omnifunc fails Problem: Vim: using {} block in autoloade omnifunc fails. Solution: Allow using {} block when text is locked. (closes https://github.com/vim/vim/issues/8631) diff --git a/src/ex_cmds.h b/src/ex_cmds.h --- a/src/ex_cmds.h +++ b/src/ex_cmds.h @@ -1853,7 +1853,7 @@ EXCMD(CMD_at, "@", ex_at, EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK|EX_NONWHITE_OK, ADDR_LINES), EXCMD(CMD_block, "{", ex_block, // not found normally - EX_TRLBAR, + EX_TRLBAR|EX_LOCK_OK, ADDR_NONE), EXCMD(CMD_endblock, "}", ex_endblock, EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK, diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim --- a/src/testdir/test_ins_complete.vim +++ b/src/testdir/test_ins_complete.vim @@ -121,6 +121,37 @@ func Test_omni_dash() set omnifunc= endfunc +func Test_omni_autoload() + let save_rtp = &rtp + set rtp=Xruntime/some + let dir = 'Xruntime/some/autoload' + call mkdir(dir, 'p') + + let lines =<< trim END + vim9script + def omni#func(findstart: bool, base: string): any + if findstart + return 1 + else + return ['match'] + endif + enddef + { + eval 1 + 2 + } + END + call writefile(lines, dir .. '/omni.vim') + + new + setlocal omnifunc=omni#func + call feedkeys("i\\\", 'xt') + + bwipe! + call delete('Xruntime', 'rf') + set omnifunc= + let &rtp = save_rtp +endfunc + func Test_completefunc_args() let s:args = [] func! CompleteFunc(findstart, base) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -756,6 +756,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3223, +/**/ 3222, /**/ 3221,