aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/grid.c
diff options
context:
space:
mode:
authorLuuk van Baal <luukvbaal@gmail.com>2023-04-27 00:57:48 +0200
committerLuuk van Baal <luukvbaal@gmail.com>2023-05-02 13:11:47 +0200
commit6146400605af93ac48dae4393569c44e8a2e39d2 (patch)
tree643008b5e4fdfff3b10dfa6eac1c069d042386fd /src/nvim/grid.c
parentc426f7a6228cb82af0f75ac4f2421543408ff091 (diff)
downloadrneovim-6146400605af93ac48dae4393569c44e8a2e39d2.tar.gz
rneovim-6146400605af93ac48dae4393569c44e8a2e39d2.tar.bz2
rneovim-6146400605af93ac48dae4393569c44e8a2e39d2.zip
vim-patch:9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Problem: Line number not visisble with 'smoothscroll', 'nu' and 'rnu'. Solution: Put the ">>>" after the line number instead of on top. https://github.com/vim/vim/commit/eb4de629315f2682d8b314462d02422ec98d751a Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat (limited to 'src/nvim/grid.c')
-rw-r--r--src/nvim/grid.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/nvim/grid.c b/src/nvim/grid.c
index 0ceaeaa8b2..8431c078b9 100644
--- a/src/nvim/grid.c
+++ b/src/nvim/grid.c
@@ -533,9 +533,21 @@ void grid_put_linebuf(ScreenGrid *grid, int row, int coloff, int endcol, int cle
if (topline && wp->w_skipcol > 0 && *get_showbreak_value(wp) == NUL) {
// Take care of putting "<<<" on the first line for 'smoothscroll'
// when 'showbreak' is not set.
- for (int i = 0; i < 3; i++) {
- schar_from_ascii(linebuf_char[i], '<');
- linebuf_attr[i] = HL_ATTR(HLF_AT);
+ int off = 0;
+ int skip = 0;
+ if (wp->w_p_nu && wp->w_p_rnu) {
+ // do not overwrite the line number, change "123 text" to
+ // "123>>>xt".
+ while (skip < wp->w_width && ascii_isdigit(*linebuf_char[off])) {
+ off++;
+ skip++;
+ }
+ }
+
+ for (int i = 0; i < 3 && i + skip < wp->w_width; i++) {
+ schar_from_ascii(linebuf_char[off], '<');
+ linebuf_attr[off] = HL_ATTR(HLF_AT);
+ off++;
}
}