mirror of
https://github.com/neovim/neovim.git
synced 2025-10-26 12:27:24 +00:00
fix(column): estimate 'statuscolumn' width appropriately
Problem: The 'statuscolumn' width is being estimated without the
proper context. In particular, this resulted in the fact
that a custom fold column could be included in the estimated
`number_width()`, and doubly added when actually drawing the
statuscolumn due to `win_col_off()` also adding the
`'foldcolumn'` width. Resulting in a status column that is
`'foldcolumn'` cells wider than necessary.
Solution: Estimate 'statuscolumn' width in `get_statuscol_str()` when
a buffer's line count has changed.
This commit is contained in:
@@ -439,7 +439,7 @@ describe('statuscolumn', function()
|
||||
vim.api.nvim_buf_set_extmark(0, ns, 7, 0, {
|
||||
virt_lines_leftcol = true, virt_lines = {{{"virt", ""}}} })
|
||||
]])
|
||||
feed('lh') -- force update wcol/row
|
||||
feed('lh') -- force update cursor row
|
||||
screen:expect([[
|
||||
4 aaaaa |
|
||||
5 aaaaa |
|
||||
@@ -458,5 +458,24 @@ describe('statuscolumn', function()
|
||||
]])
|
||||
command('set stc=') -- also for the default sign column
|
||||
screen:expect_unchanged()
|
||||
-- 'statuscolumn' is not too wide with custom (bogus) fold column
|
||||
command([[set stc=%{foldlevel(v:lnum)>0?repeat('-',foldlevel(v:lnum)):''}%=%l\ ]])
|
||||
feed('Gd10Ggg<C-l>')
|
||||
screen:expect([[
|
||||
1 ^aaaaa |
|
||||
2 aaaaa |
|
||||
3 aaaaa |
|
||||
4 aaaaa |
|
||||
5 aaaaa |
|
||||
6 aaaaa |
|
||||
7 aaaaa |
|
||||
virt |
|
||||
---------8 aaaaa |
|
||||
virt |
|
||||
---------9 aaaaa |
|
||||
~ |
|
||||
~ |
|
||||
|
|
||||
]])
|
||||
end)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user