feat(ex_cmds): no error on :lua with {range} and {code} (#27290)

Problem:  Erroring when both {range} and {code} are supplied to
          :lua is inconvenient and may break mappings.
Solution: Don't error, ignore {range} and execute {code} when both
          are supplied.
This commit is contained in:
luukvbaal
2024-02-02 06:14:10 +01:00
committed by GitHub
parent 1405e5c8c1
commit 4a1ad676ce
2 changed files with 9 additions and 10 deletions

View File

@@ -56,12 +56,7 @@ describe(':lua', function()
end)
it('throws catchable errors', function()
for _, cmd in ipairs({ 'lua', '1lua chunk' }) do
eq(
'Vim(lua):E475: Invalid argument: exactly one of {chunk} or {range} required',
pcall_err(command, cmd)
)
end
eq('Vim(lua):E471: Argument required', pcall_err(command, 'lua'))
eq(
[[Vim(lua):E5107: Error loading lua [string ":lua"]:0: unexpected symbol near ')']],
pcall_err(command, 'lua ()')
@@ -230,6 +225,10 @@ describe(':lua', function()
[1] = { foreground = Screen.colors.Blue, bold = true },
},
}
-- ":{range}lua {code}" executes {code}, ignoring {range}
eq('', exec_capture('1lua gvar = 42'))
eq(42, fn.luaeval('gvar'))
end)
end)