mirror of
https://github.com/neovim/neovim.git
synced 2025-09-18 01:08:20 +00:00
@@ -517,14 +517,9 @@ m *+xim* X input method |xim|
|
|||||||
:silent! /^begin
|
:silent! /^begin
|
||||||
:if v:errmsg != ""
|
:if v:errmsg != ""
|
||||||
: ... pattern was not found
|
: ... pattern was not found
|
||||||
< ":silent" will also avoid the hit-enter prompt. When
|
< ":silent" also skips the hit-enter prompt.
|
||||||
using this for an external command, this may cause the
|
Dialogs that prompt for user input (|confirm()|,
|
||||||
screen to be messed up. Use |CTRL-L| to clean it up
|
'swapfile', …) are never silent.
|
||||||
then.
|
|
||||||
":silent menu ..." defines a menu that will not echo a
|
|
||||||
Command-line command. The command will still produce
|
|
||||||
messages though. Use ":silent" in the command itself
|
|
||||||
to avoid that: ":silent menu .... :silent command".
|
|
||||||
|
|
||||||
*:uns* *:unsilent*
|
*:uns* *:unsilent*
|
||||||
:uns[ilent] {command} Execute {command} not silently. Only makes a
|
:uns[ilent] {command} Execute {command} not silently. Only makes a
|
||||||
|
@@ -2825,7 +2825,6 @@ do_dialog (
|
|||||||
Ex command */
|
Ex command */
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
int oldState;
|
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
char_u *hotkeys;
|
char_u *hotkeys;
|
||||||
int c;
|
int c;
|
||||||
@@ -2838,7 +2837,10 @@ do_dialog (
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
oldState = State;
|
int save_msg_silent = msg_silent;
|
||||||
|
int oldState = State;
|
||||||
|
|
||||||
|
msg_silent = 0; // If dialog prompts for input, user needs to see it! #8788
|
||||||
State = CONFIRM;
|
State = CONFIRM;
|
||||||
setmouse();
|
setmouse();
|
||||||
|
|
||||||
@@ -2891,6 +2893,7 @@ do_dialog (
|
|||||||
|
|
||||||
xfree(hotkeys);
|
xfree(hotkeys);
|
||||||
|
|
||||||
|
msg_silent = save_msg_silent;
|
||||||
State = oldState;
|
State = oldState;
|
||||||
setmouse();
|
setmouse();
|
||||||
--no_wait_return;
|
--no_wait_return;
|
||||||
|
@@ -8,6 +8,7 @@ local clear = helpers.clear
|
|||||||
local source = helpers.source
|
local source = helpers.source
|
||||||
local command = helpers.command
|
local command = helpers.command
|
||||||
local exc_exec = helpers.exc_exec
|
local exc_exec = helpers.exc_exec
|
||||||
|
local nvim_async = helpers.nvim_async
|
||||||
|
|
||||||
local screen
|
local screen
|
||||||
|
|
||||||
@@ -59,6 +60,7 @@ before_each(function()
|
|||||||
RBP3={background=Screen.colors.Green},
|
RBP3={background=Screen.colors.Green},
|
||||||
RBP4={background=Screen.colors.Blue},
|
RBP4={background=Screen.colors.Blue},
|
||||||
SEP={bold = true, reverse = true},
|
SEP={bold = true, reverse = true},
|
||||||
|
CONFIRM={bold = true, foreground = Screen.colors.SeaGreen4},
|
||||||
})
|
})
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -439,3 +441,43 @@ describe('inputdialog()', function()
|
|||||||
]])
|
]])
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
describe('confirm()', function()
|
||||||
|
it("shows dialog even if :silent #8788", function()
|
||||||
|
command("autocmd BufNewFile * call confirm('test')")
|
||||||
|
|
||||||
|
local function check_and_clear(edit_line)
|
||||||
|
screen:expect([[
|
||||||
|
|
|
||||||
|
{SEP: }|
|
||||||
|
]]..edit_line..[[
|
||||||
|
{CONFIRM:test} |
|
||||||
|
{CONFIRM:[O]k: }^ |
|
||||||
|
]])
|
||||||
|
feed('<cr>')
|
||||||
|
command('redraw')
|
||||||
|
command('bdelete!')
|
||||||
|
end
|
||||||
|
|
||||||
|
-- With shortmess-=F
|
||||||
|
command('set shortmess-=F')
|
||||||
|
feed(':edit foo<cr>')
|
||||||
|
check_and_clear('"foo" [New File] |\n')
|
||||||
|
|
||||||
|
-- With shortmess+=F
|
||||||
|
command('set shortmess+=F')
|
||||||
|
feed(':edit foo<cr>')
|
||||||
|
check_and_clear(':edit foo |\n')
|
||||||
|
|
||||||
|
-- With :silent
|
||||||
|
feed(':silent edit foo<cr>')
|
||||||
|
check_and_clear(':silent edit foo |\n')
|
||||||
|
|
||||||
|
-- With API (via eval/VimL) call and shortmess+=F
|
||||||
|
feed(':call nvim_command("edit x")<cr>')
|
||||||
|
check_and_clear(':call nvim_command("edit |\n')
|
||||||
|
|
||||||
|
nvim_async('command', 'edit x')
|
||||||
|
check_and_clear(' |\n')
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
@@ -11,6 +11,7 @@ local ok = helpers.ok
|
|||||||
local rmdir = helpers.rmdir
|
local rmdir = helpers.rmdir
|
||||||
local set_session = helpers.set_session
|
local set_session = helpers.set_session
|
||||||
local spawn = helpers.spawn
|
local spawn = helpers.spawn
|
||||||
|
local nvim_async = helpers.nvim_async
|
||||||
|
|
||||||
describe(':recover', function()
|
describe(':recover', function()
|
||||||
before_each(clear)
|
before_each(clear)
|
||||||
@@ -150,5 +151,12 @@ describe('swapfile detection', function()
|
|||||||
feed('e') -- Chose "Edit" at the swap dialog.
|
feed('e') -- Chose "Edit" at the swap dialog.
|
||||||
feed('<c-c>')
|
feed('<c-c>')
|
||||||
screen2:expect(expected_no_dialog)
|
screen2:expect(expected_no_dialog)
|
||||||
|
|
||||||
|
-- With API call and shortmess+=F
|
||||||
|
nvim_async('command', 'edit %')
|
||||||
|
screen2:expect{any=[[Found a swap file by the name ".*]]
|
||||||
|
..[[Xtest_swapdialog_dir[/\].*]]..testfile..[[%.swp"]]}
|
||||||
|
feed('e') -- Chose "Edit" at the swap dialog.
|
||||||
|
feed('<c-c>')
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
Reference in New Issue
Block a user