patch 8.2.2951: Vim9: cannot use heredoc for :python, :lua, etc.
Problem: Vim9: cannot use heredoc in :def function for :python, :lua, etc.
Solution: Concatenate the heredoc lines and pass them in the ISN_EXEC_SPLIT
instruction.
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 9f0cd3f..7e21b37 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -2758,5 +2758,33 @@
call CheckDefAndScriptSuccess(lines)
enddef
+if has('python3')
+ def Test_python3_heredoc()
+ py3 << trim EOF
+ import vim
+ vim.vars['didit'] = 'yes'
+ EOF
+ assert_equal('yes', g:didit)
+
+ python3 << trim EOF
+ import vim
+ vim.vars['didit'] = 'again'
+ EOF
+ assert_equal('again', g:didit)
+ enddef
+endif
+
+" This messes up syntax highlight, keep near the end.
+if has('lua')
+ def Test_lua_heredoc()
+ g:d = {}
+ lua << trim EOF
+ x = vim.eval('g:d')
+ x['key'] = 'val'
+ EOF
+ assert_equal('val', g:d.key)
+ enddef
+endif
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker