aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Caisey <marcus@teckna.com>2024-11-25 22:33:11 +0000
committerGitHub <noreply@github.com>2024-11-25 16:33:11 -0600
commitc644228e1dfe9f70aae53292b328be98dc95b8f7 (patch)
tree8fa7c6e0b6d600415b3f8b9a9886173cd024bda6
parentf81131cca2b4bf28f3d0a2411b13d0082a580903 (diff)
downloadrneovim-c644228e1dfe9f70aae53292b328be98dc95b8f7.tar.gz
rneovim-c644228e1dfe9f70aae53292b328be98dc95b8f7.tar.bz2
rneovim-c644228e1dfe9f70aae53292b328be98dc95b8f7.zip
fix(defaults): omit empty line from unimpaired mapping messages (#31347)
Problem: The default unimpaired mappings display an empty line after the command's output. This results (with default configuration) in the `Press ENTER or type command to continue` prompt to be displayed, like so: ``` (2 of 16): item2 Press ENTER or type command to continue ``` Solution: The cause is that we're checking the second return value from `pcall(vim.api.nvim_cmd, opts, {})` to determine whether the call was successful. `nvim_cmd` returns an empty string on success, so this value is an empty string in the successful path which we then display. The fix is simple: check the first return value instead which is the "status code" of the call.
-rw-r--r--runtime/lua/vim/_defaults.lua4
-rw-r--r--test/functional/editor/defaults_spec.lua29
2 files changed, 30 insertions, 3 deletions
diff --git a/runtime/lua/vim/_defaults.lua b/runtime/lua/vim/_defaults.lua
index 06f6ed6829..2687f34302 100644
--- a/runtime/lua/vim/_defaults.lua
+++ b/runtime/lua/vim/_defaults.lua
@@ -222,8 +222,8 @@ do
--- Execute a command and print errors without a stacktrace.
--- @param opts table Arguments to |nvim_cmd()|
local function cmd(opts)
- local _, err = pcall(vim.api.nvim_cmd, opts, {})
- if err then
+ local ok, err = pcall(vim.api.nvim_cmd, opts, {})
+ if not ok then
vim.api.nvim_err_writeln(err:sub(#'Vim:' + 1))
end
end
diff --git a/test/functional/editor/defaults_spec.lua b/test/functional/editor/defaults_spec.lua
index 82d285cc9a..3b0be5c9d9 100644
--- a/test/functional/editor/defaults_spec.lua
+++ b/test/functional/editor/defaults_spec.lua
@@ -95,7 +95,34 @@ describe('default', function()
describe('key mappings', function()
describe('unimpaired-style mappings', function()
- it('do not show a full stack trace #30625', function()
+ it('show the command ouptut when successful', function()
+ n.clear({ args_rm = { '--cmd' } })
+ local screen = Screen.new(40, 8)
+ n.fn.setqflist({
+ { filename = 'file1', text = 'item1' },
+ { filename = 'file2', text = 'item2' },
+ })
+
+ n.feed(']q')
+
+ screen:set_default_attr_ids({
+ [1] = { foreground = Screen.colors.NvimDarkGrey4 },
+ [2] = {
+ background = Screen.colors.NvimLightGray3,
+ foreground = Screen.colors.NvimDarkGrey3,
+ },
+ })
+ screen:expect({
+ grid = [[
+ ^ |
+ {1:~ }|*5
+ {2:file2 0,0-1 All}|
+ (2 of 2): item2 |
+ ]],
+ })
+ end)
+
+ it('do not show a full stack trace when unsuccessful #30625', function()
n.clear({ args_rm = { '--cmd' } })
local screen = Screen.new(40, 8)
screen:set_default_attr_ids({