diff options
author | 0x74696d6d79 <34635512+tzx@users.noreply.github.com> | 2022-06-28 05:53:15 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-28 02:53:15 -0700 |
commit | ee6b21e8430ea810ba2e3e9163b941386a2e1d65 (patch) | |
tree | 144e681d0e7fc79107dcbffb91a2eed6bd5a25cf | |
parent | 014a88799a1d175ad121c520c9cc5bd0bb2d8813 (diff) | |
download | rneovim-ee6b21e8430ea810ba2e3e9163b941386a2e1d65.tar.gz rneovim-ee6b21e8430ea810ba2e3e9163b941386a2e1d65.tar.bz2 rneovim-ee6b21e8430ea810ba2e3e9163b941386a2e1d65.zip |
fix(vim.ui.input): accept nil or empty "opts" #19109
Fix #18143
-rw-r--r-- | runtime/doc/lua.txt | 3 | ||||
-rw-r--r-- | runtime/lua/vim/ui.lua | 4 | ||||
-rw-r--r-- | test/functional/lua/ui_spec.lua | 16 |
3 files changed, 19 insertions, 4 deletions
diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt index b79699c89b..0e72e89672 100644 --- a/runtime/doc/lua.txt +++ b/runtime/doc/lua.txt @@ -1935,8 +1935,7 @@ input({opts}, {on_confirm}) *vim.ui.input()* Parameters: ~ {opts} (table) Additional options. See |input()| - • prompt (string|nil) Text of the prompt. - Defaults to `Input:`. + • prompt (string|nil) Text of the prompt • default (string|nil) Default reply to the input • completion (string|nil) Specifies type of diff --git a/runtime/lua/vim/ui.lua b/runtime/lua/vim/ui.lua index 77bca7f6c4..6f1ce3089d 100644 --- a/runtime/lua/vim/ui.lua +++ b/runtime/lua/vim/ui.lua @@ -59,7 +59,7 @@ end --- ---@param opts table Additional options. See |input()| --- - prompt (string|nil) ---- Text of the prompt. Defaults to `Input: `. +--- Text of the prompt --- - default (string|nil) --- Default reply to the input --- - completion (string|nil) @@ -87,7 +87,7 @@ function M.input(opts, on_confirm) on_confirm = { on_confirm, 'function', false }, }) - opts = opts or {} + opts = (opts and not vim.tbl_isempty(opts)) and opts or vim.empty_dict() local input = vim.fn.input(opts) if #input > 0 then on_confirm(input) diff --git a/test/functional/lua/ui_spec.lua b/test/functional/lua/ui_spec.lua index 2371939204..3fcb2dec8d 100644 --- a/test/functional/lua/ui_spec.lua +++ b/test/functional/lua/ui_spec.lua @@ -2,6 +2,8 @@ local helpers = require('test.functional.helpers')(after_each) local eq = helpers.eq local exec_lua = helpers.exec_lua local clear = helpers.clear +local feed = helpers.feed +local eval = helpers.eval describe('vim.ui', function() before_each(function() @@ -67,5 +69,19 @@ describe('vim.ui', function() eq('Inputted text', result[1]) eq('Input: ', result[2]) end) + + it('can input text on nil opt', function() + feed(':lua vim.ui.input(nil, function(input) result = input end)<cr>') + eq('', eval('v:errmsg')) + feed('Inputted text<cr>') + eq('Inputted text', exec_lua('return result')) + end) + + it('can input text on {} opt', function() + feed(':lua vim.ui.input({}, function(input) result = input end)<cr>') + eq('', eval('v:errmsg')) + feed('abcdefg<cr>') + eq('abcdefg', exec_lua('return result')) + end) end) end) |