aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/drawscreen.c
diff options
context:
space:
mode:
authorLuuk van Baal <luukvbaal@gmail.com>2023-11-11 00:52:50 +0100
committerLuuk van Baal <luukvbaal@gmail.com>2023-11-17 15:10:15 +0100
commitc4afb9788c4f139eb2e3b7aa4d6a6a20b67ba156 (patch)
treeabc3a6da1906ea61f40aaacf3bdb813c27e19d64 /src/nvim/drawscreen.c
parentba58c6f8a44c9c37e97fce1d802dc5b5defceb3d (diff)
downloadrneovim-c4afb9788c4f139eb2e3b7aa4d6a6a20b67ba156.tar.gz
rneovim-c4afb9788c4f139eb2e3b7aa4d6a6a20b67ba156.tar.bz2
rneovim-c4afb9788c4f139eb2e3b7aa4d6a6a20b67ba156.zip
refactor(sign): move legacy signs to extmarks
Problem: The legacy signlist data structures and associated functions are redundant since the introduction of extmark signs. Solution: Store signs defined through the legacy commands in a hashmap, placed signs in the extmark tree. Replace signlist associated functions. Usage of the legacy sign commands should yield no change in behavior with the exception of: - "orphaned signs" are now always removed when the line it is placed on is deleted. This used to depend on the value of 'signcolumn'. - It is no longer possible to place multiple signs with the same identifier in a single group on multiple lines. This will now move the sign instead. Moreover, both signs placed through the legacy sign commands and through |nvim_buf_set_extmark()|: - Will show up in both |sign-place| and |nvim_buf_get_extmarks()|. - Are displayed by increasing sign identifier, left to right. Extmark signs used to be ordered decreasingly as opposed to legacy signs.
Diffstat (limited to 'src/nvim/drawscreen.c')
-rw-r--r--src/nvim/drawscreen.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/nvim/drawscreen.c b/src/nvim/drawscreen.c
index 29f1cb2470..dbcb16cae3 100644
--- a/src/nvim/drawscreen.c
+++ b/src/nvim/drawscreen.c
@@ -2558,7 +2558,7 @@ void win_draw_end(win_T *wp, int c1, int c2, bool draw_margin, int row, int endr
// draw the sign column
int count = wp->w_scwidth;
if (count > 0) {
- n = win_fill_end(wp, ' ', ' ', n, win_signcol_width(wp) * count, row,
+ n = win_fill_end(wp, ' ', ' ', n, SIGN_WIDTH * count, row,
endrow, win_hl_attr(wp, HLF_SC));
}
// draw the number column
@@ -2633,7 +2633,7 @@ int number_width(win_T *wp)
// If 'signcolumn' is set to 'number' and there is a sign to display, then
// the minimal width for the number column is 2.
- if (n < 2 && (wp->w_buffer->b_signlist != NULL)
+ if (n < 2 && wp->w_buffer->b_signs_with_text
&& (*wp->w_p_scl == 'n' && *(wp->w_p_scl + 1) == 'u')) {
n = 2;
}