diff options
-rw-r--r-- | src/nvim/ex_cmds.c | 16 | ||||
-rw-r--r-- | test/functional/ex_cmds/sign_spec.lua | 25 |
2 files changed, 34 insertions, 7 deletions
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c index 5db950f120..f5fa16a139 100644 --- a/src/nvim/ex_cmds.c +++ b/src/nvim/ex_cmds.c @@ -5908,12 +5908,13 @@ void ex_sign(exarg_T *eap) arg = skipwhite(arg); if (idx == SIGNCMD_UNPLACE && *arg == NUL) { - /* ":sign unplace {id}": remove placed sign by number */ - FOR_ALL_BUFFERS(buf) { - if ((lnum = buf_delsign(buf, id)) != 0) - update_debug_sign(buf, lnum); - return; - } + // ":sign unplace {id}": remove placed sign by number + FOR_ALL_BUFFERS(buf) { + if ((lnum = buf_delsign(buf, id)) != 0) { + update_debug_sign(buf, lnum); + } + } + return; } } } @@ -5923,7 +5924,7 @@ void ex_sign(exarg_T *eap) * Leave "arg" pointing to {fname}. */ - buf_T *buf = NULL; + buf_T *buf = NULL; for (;;) { if (STRNCMP(arg, "line=", 5) == 0) @@ -6343,3 +6344,4 @@ void set_context_in_sign_cmd(expand_T *xp, char_u *arg) } } +// vim: tabstop=8 diff --git a/test/functional/ex_cmds/sign_spec.lua b/test/functional/ex_cmds/sign_spec.lua new file mode 100644 index 0000000000..74e1aa4702 --- /dev/null +++ b/test/functional/ex_cmds/sign_spec.lua @@ -0,0 +1,25 @@ +local helpers = require('test.functional.helpers') +local clear, nvim, buffer, curbuf, curwin, eq, ok = + helpers.clear, helpers.nvim, helpers.buffer, helpers.curbuf, helpers.curwin, + helpers.eq, helpers.ok + +describe('sign', function() + describe('unplace {id}', function() + describe('without specifying buffer', function() + it('deletes the sign from all buffers', function() + -- place a sign with id 34 to first buffer + nvim('command', 'sign define Foo text=+ texthl=Delimiter linehl=Comment') + local buf1 = nvim('eval', 'bufnr("%")') + nvim('command', 'sign place 34 line=3 name=Foo buffer='..buf1) + -- create a second buffer and place the sign on it as well + nvim('command', 'new') + local buf2 = nvim('eval', 'bufnr("%")') + nvim('command', 'sign place 34 line=3 name=Foo buffer='..buf2) + -- now unplace without specifying a buffer + nvim('command', 'sign unplace 34') + eq("\n--- Signs ---\n", nvim('command_output', 'sign place buffer='..buf1)) + eq("\n--- Signs ---\n", nvim('command_output', 'sign place buffer='..buf2)) + end) + end) + end) +end) |