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.
This commit is contained in:
Marcus Caisey
2024-11-25 22:33:11 +00:00
committed by GitHub
parent f81131cca2
commit c644228e1d
2 changed files with 30 additions and 3 deletions

View File

@ -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