Two visual regressions:
1. bufferline.nvim dynamically toggles the tabline when the buffer
count crosses 2 (stepping into a library file adds a buffer,
showtabline flips from 0 to 2). That reserves a row at the top of
the editor grid; every window shifts down and our bars can either
get squeezed or outright killed. Previous VimResized handler only
caught editor-level resizes, not the subtle tabline-toggle event.
Now we listen to:
- VimResized — editor size change
- OptionSet showtabline — bufferline / user flips showtabline
- BufEnter/BufWinEnter/TabEnter — catch the case where bufferline
computes its tabline string via %{%...%} which nvim renders
without firing OptionSet. Guarded so it only runs recovery
when a bar is actually missing.
All three call the same recover_chrome() which recreates any bar
that's gone and re-renders content. dapui sizes are not touched
(user's manual resizes stick).
2. TurboDebugBarSeparator was linked to FloatBorder which reads
darker than WinSeparator in most colorschemes. Dapui draws its own
pane dividers with WinSeparator, producing a visible color seam
between our bar's bottom edge and the adjacent dapui pane top.
Relinked to WinSeparator so the bar edges match dapui's dividers.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>