mirror of
https://github.com/neovim/neovim.git
synced 2025-09-05 19:08:15 +00:00
fix(clipboard): show provider warning when not during batch changes
It is strange that Ex commands that explicitly interact with the clipboard show provider warning, but Normal mode commands do not.
This commit is contained in:
@@ -6433,7 +6433,7 @@ static yankreg_T *adjust_clipboard_name(int *name, bool quiet, bool writing)
|
||||
}
|
||||
|
||||
if (!eval_has_provider("clipboard")) {
|
||||
if (batch_change_count == 1 && !quiet
|
||||
if (batch_change_count <= 1 && !quiet
|
||||
&& (!clipboard_didwarn || (explicit_cb_reg && !redirecting()))) {
|
||||
clipboard_didwarn = true;
|
||||
// Do NOT error (emsg()) here--if it interrupts :redir we get into
|
||||
|
@@ -106,8 +106,53 @@ describe('clipboard', function()
|
||||
basic_register_test()
|
||||
end)
|
||||
|
||||
it('`:redir @+>` with invalid g:clipboard shows exactly one error #7184',
|
||||
function()
|
||||
it('using "+ in Normal mode with invalid g:clipboard always shows error', function()
|
||||
insert('a')
|
||||
command("let g:clipboard = 'bogus'")
|
||||
feed('"+yl')
|
||||
screen:expect([[
|
||||
^a |
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
clipboard: No provider. Try ":checkhealth" or ":h clipboard". |
|
||||
]])
|
||||
feed('"+p')
|
||||
screen:expect([[
|
||||
a^a |
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
clipboard: No provider. Try ":checkhealth" or ":h clipboard". |
|
||||
]])
|
||||
end)
|
||||
|
||||
it('using clipboard=unnamedplus with invalid g:clipboard shows error once', function()
|
||||
insert('a')
|
||||
command("let g:clipboard = 'bogus'")
|
||||
command('set clipboard=unnamedplus')
|
||||
feed('yl')
|
||||
screen:expect([[
|
||||
^a |
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
clipboard: No provider. Try ":checkhealth" or ":h clipboard". |
|
||||
]])
|
||||
feed(':<CR>')
|
||||
screen:expect([[
|
||||
^a |
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
: |
|
||||
]])
|
||||
feed('p')
|
||||
screen:expect([[
|
||||
a^a |
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
: |
|
||||
]])
|
||||
end)
|
||||
|
||||
it('`:redir @+>` with invalid g:clipboard shows exactly one error #7184', function()
|
||||
command("let g:clipboard = 'bogus'")
|
||||
feed_command('redir @+> | :silent echo system("cat CONTRIBUTING.md") | redir END')
|
||||
screen:expect([[
|
||||
@@ -118,8 +163,7 @@ describe('clipboard', function()
|
||||
]])
|
||||
end)
|
||||
|
||||
it('`:redir @+>|bogus_cmd|redir END` + invalid g:clipboard must not recurse #7184',
|
||||
function()
|
||||
it('`:redir @+>|bogus_cmd|redir END` + invalid g:clipboard must not recurse #7184', function()
|
||||
command("let g:clipboard = 'bogus'")
|
||||
feed_command('redir @+> | bogus_cmd | redir END')
|
||||
screen:expect{grid=[[
|
||||
|
Reference in New Issue
Block a user