diff options
author | Christian Clason <c.clason@uni-graz.at> | 2022-02-13 11:41:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-13 11:41:17 +0100 |
commit | 1b73ae653f555c2cdbf59bb123261f5d78f3567f (patch) | |
tree | 256a3839959ad71120bdcb55f94efb56f55729f4 | |
parent | 2c4efc0347183d5983cbc294205bc631aa874310 (diff) | |
parent | 4ddd6c53bd9ed33ba85d74f3774341705a0c1f4b (diff) | |
download | rneovim-1b73ae653f555c2cdbf59bb123261f5d78f3567f.tar.gz rneovim-1b73ae653f555c2cdbf59bb123261f5d78f3567f.tar.bz2 rneovim-1b73ae653f555c2cdbf59bb123261f5d78f3567f.zip |
Merge pull request #16914 from godlygeek/fix_14587
fix(screen): don't put empty sign text in line number column
-rw-r--r-- | src/nvim/screen.c | 2 | ||||
-rw-r--r-- | test/functional/ui/sign_spec.lua | 26 |
2 files changed, 27 insertions, 1 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c index 6dcabffb7d..15fb6901cc 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -2813,7 +2813,7 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool noc // in 'lnum', then display the sign instead of the line // number. if (*wp->w_p_scl == 'n' && *(wp->w_p_scl + 1) == 'u' - && num_signs > 0) { + && num_signs > 0 && sign_get_attr(SIGN_TEXT, sattrs, 0, 1)) { int count = win_signcol_count(wp); get_sign_display_info(true, wp, lnum, sattrs, row, startrow, filler_lines, filler_todo, count, diff --git a/test/functional/ui/sign_spec.lua b/test/functional/ui/sign_spec.lua index dcd31cfdb7..a0b7c98c51 100644 --- a/test/functional/ui/sign_spec.lua +++ b/test/functional/ui/sign_spec.lua @@ -526,6 +526,32 @@ describe('Signs', function() ]]) end) + it('shows the line number when signcolumn=number but no marks on a line have text', function() + feed('ia<cr>b<cr>c<cr><esc>') + command('set number signcolumn=number') + command('sign define pietSearch text=>> texthl=Search numhl=Error') + command('sign define pietError text= texthl=Search numhl=Error') + command('sign place 1 line=1 name=pietSearch buffer=1') + command('sign place 2 line=2 name=pietError buffer=1') + -- no signcolumn, line number for "a" is Search, for "b" is Error, for "c" is LineNr + screen:expect([[ + {1: >> }a | + {8: 2 }b | + {6: 3 }c | + {6: 4 }^ | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + | + ]]) + end) + it('can have 32bit sign IDs', function() command('sign define piet text=>> texthl=Search') command('sign place 100000 line=1 name=piet buffer=1') |