diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-02-25 00:30:42 -0500 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-03-01 20:02:09 -0500 |
commit | 1caa85b677bc287883895558281d23e1fd55817e (patch) | |
tree | 58aa14e61ce6b2c2e075cb00631b3b560649e62d /src | |
parent | ca3dba482c15d127b492c2431960d154ae88c98a (diff) | |
download | rneovim-1caa85b677bc287883895558281d23e1fd55817e.tar.gz rneovim-1caa85b677bc287883895558281d23e1fd55817e.tar.bz2 rneovim-1caa85b677bc287883895558281d23e1fd55817e.zip |
vim-patch:8.1.1466: not updating priority on existing sign
Problem: Not updating priority on existing sign.
Solution: Set the sign priority. Add a test. (Yegappan Lakshmanan)
https://github.com/vim/vim/commit/58a7f87c8653b4cb5b0794b6b88e2ec140d3d2c3
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/sign.c | 1 | ||||
-rw-r--r-- | src/nvim/testdir/test_signs.vim | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/nvim/sign.c b/src/nvim/sign.c index 23dd447744..e81d09aa4b 100644 --- a/src/nvim/sign.c +++ b/src/nvim/sign.c @@ -284,6 +284,7 @@ void buf_addsign( && sign_in_group(sign, groupname)) { // Update an existing sign sign->typenr = typenr; + sign->priority = prio; return; } else if (lnum < sign->lnum) { insert_sign_by_lnum_prio(buf, prev, id, groupname, prio, lnum, typenr); diff --git a/src/nvim/testdir/test_signs.vim b/src/nvim/testdir/test_signs.vim index ef4b227215..806bd4b68b 100644 --- a/src/nvim/testdir/test_signs.vim +++ b/src/nvim/testdir/test_signs.vim @@ -1127,6 +1127,24 @@ func Test_sign_priority() \ 'priority' : 10}], \ s[0].signs) + " Place multiple signs with same id on a line with different priority + call sign_place(1, '', 'sign1', 'Xsign', + \ {'lnum' : 5, 'priority' : 20}) + call sign_place(1, '', 'sign2', 'Xsign', + \ {'lnum' : 5, 'priority' : 10}) + let s = sign_getplaced('Xsign', {'lnum' : 5}) + call assert_equal([ + \ {'id' : 1, 'name' : 'sign2', 'lnum' : 5, 'group' : '', + \ 'priority' : 10}], + \ s[0].signs) + call sign_place(1, '', 'sign2', 'Xsign', + \ {'lnum' : 5, 'priority' : 5}) + let s = sign_getplaced('Xsign', {'lnum' : 5}) + call assert_equal([ + \ {'id' : 1, 'name' : 'sign2', 'lnum' : 5, 'group' : '', + \ 'priority' : 5}], + \ s[0].signs) + " Error case call assert_fails("call sign_place(1, 'g1', 'sign1', 'Xsign', \ [])", 'E715:') |