summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-07-25 20:27:06 +0200
committerBram Moolenaar <Bram@vim.org>2021-07-25 20:27:06 +0200
commitff34bee3a2d22f2ff7abd4519270b5518082c33d (patch)
treeae9b6bd43642d3a22dae4a4f2bf6e75057178af6
parent3c77b6a1ce1d4a06c60bb9fae7eec2775f547d55 (diff)
downloadvim-git-ff34bee3a2d22f2ff7abd4519270b5518082c33d.tar.gz
patch 8.2.3223: Vim: using {} block in autoloade omnifunc failsv8.2.3223
Problem: Vim: using {} block in autoloade omnifunc fails. Solution: Allow using {} block when text is locked. (closes #8631)
-rw-r--r--src/ex_cmds.h2
-rw-r--r--src/testdir/test_ins_complete.vim31
-rw-r--r--src/version.c2
3 files changed, 34 insertions, 1 deletions
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index ef3fa669c..8596b24b4 100644
--- 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
index 613e9520d..1f2c7fe31 100644
--- 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\<C-X>\<C-O>\<Esc>", '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
index f8a3ee478..0f181efdf 100644
--- 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,