mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
shadow previously set signs #1893
This commit is contained in:
parent
2d22e1f035
commit
6e992876ea
@ -4337,10 +4337,8 @@ void buf_addsign(
|
||||
if (lnum == sign->lnum && id == sign->id) {
|
||||
sign->typenr = typenr;
|
||||
return;
|
||||
}
|
||||
else if (id < 0 /* keep signs sorted by lnum */
|
||||
&& lnum < sign->lnum)
|
||||
{
|
||||
} else if ((lnum == sign->lnum && id != sign->id)
|
||||
|| (id < 0 && lnum < sign->lnum)) { // attempt to keep signs sorted by lnum
|
||||
insert_sign(buf, prev, sign, id, lnum, typenr);
|
||||
return;
|
||||
}
|
||||
|
45
test/functional/ui/sign_spec.lua
Normal file
45
test/functional/ui/sign_spec.lua
Normal file
@ -0,0 +1,45 @@
|
||||
local helpers = require('test.functional.helpers')
|
||||
local Screen = require('test.functional.ui.screen')
|
||||
local clear, feed, execute = helpers.clear, helpers.feed, helpers.execute
|
||||
|
||||
describe('Signs', function()
|
||||
local screen
|
||||
|
||||
before_each(function()
|
||||
clear()
|
||||
screen = Screen.new()
|
||||
screen:attach()
|
||||
screen:set_default_attr_ignore( {{}, {bold=true, foreground=255}} )
|
||||
end)
|
||||
|
||||
after_each(function()
|
||||
screen:detach()
|
||||
end)
|
||||
|
||||
describe(':sign place', function()
|
||||
it('shadows previously placed signs', function()
|
||||
feed('ia<cr>b<cr>c<cr><esc>')
|
||||
execute('sign define piet text=>> texthl=Search')
|
||||
execute('sign define pietx text=>! texthl=Search')
|
||||
execute('sign place 1 line=1 name=piet buffer=1')
|
||||
execute('sign place 2 line=3 name=piet buffer=1')
|
||||
execute('sign place 3 line=1 name=pietx buffer=1')
|
||||
screen:expect([[
|
||||
>!a |
|
||||
b |
|
||||
>>c |
|
||||
^ |
|
||||
~ |
|
||||
~ |
|
||||
~ |
|
||||
~ |
|
||||
~ |
|
||||
~ |
|
||||
~ |
|
||||
~ |
|
||||
~ |
|
||||
:sign place 3 line=1 name=pietx buffer=1 |
|
||||
]])
|
||||
end)
|
||||
end)
|
||||
end)
|
Loading…
Reference in New Issue
Block a user