Mercurial > vim
changeset 21664:60ba361a7fdb v8.2.1382
patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Commit: https://github.com/vim/vim/commit/8e1986e3896cc8c2a05fc6291a39ebb275e1cebf
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Aug 6 22:11:06 2020 +0200
patch 8.2.1382: Vim9: using :import in filetype plugin gives an error
Problem: Vim9: using :import in filetype plugin gives an error.
Solution: Allow commands with the EX_LOCK_OK flag. (closes https://github.com/vim/vim/issues/6636)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 06 Aug 2020 22:15:05 +0200 |
parents | a2e140e1cdbe |
children | 74b1ce385388 |
files | src/ex_docmd.c src/testdir/test_vim9_script.vim src/version.c |
diffstat | 3 files changed, 33 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -2087,7 +2087,7 @@ do_one_cmd( // Do allow ":checktime" (it is postponed). // Do allow ":edit" (check for an argument later). // Do allow ":file" with no arguments (check for an argument later). - if (!(ea.argt & EX_CMDWIN) + if (!(ea.argt & (EX_CMDWIN | EX_LOCK_OK)) && ea.cmdidx != CMD_checktime && ea.cmdidx != CMD_edit && ea.cmdidx != CMD_file
--- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -1381,6 +1381,36 @@ def Test_import_export_expr_map() nunmap trigger enddef +def Test_import_in_filetype() + # check that :import works when the buffer is locked + mkdir('ftplugin', 'p') + let export_lines =<< trim END + vim9script + export let That = 'yes' + END + writefile(export_lines, 'ftplugin/Xexport_that.vim') + + let import_lines =<< trim END + vim9script + import That from './Xexport_that.vim' + assert_equal('yes', That) + g:did_load_mytpe = 1 + END + writefile(import_lines, 'ftplugin/qf.vim') + + let save_rtp = &rtp + &rtp = getcwd() .. ',' .. &rtp + + filetype plugin on + copen + assert_equal(1, g:did_load_mytpe) + + quit! + delete('Xexport.vim') + delete('ftplugin', 'rf') + &rtp = save_rtp +enddef + def Test_vim9script_fails() CheckScriptFailure(['scriptversion 2', 'vim9script'], 'E1039:') CheckScriptFailure(['vim9script', 'scriptversion 2'], 'E1040:')