feat(buffer): open as bottom-drawer split like fugitive (#23)

* feat(buffer): open as bottom-drawer split like fugitive

Problem: :Pending replaced the current buffer, making it impossible to
view tasks alongside the file being edited. No way to close the drawer
without :q or switching buffers manually.

Solution: open the task buffer in a botright horizontal split instead of
replacing the current buffer. Track the drawer window ID so re-opening
focuses it rather than creating a second split. Set winfixheight so the
drawer keeps its height when other windows open or close. Add q/<Esc>
mappings to close the drawer, and a WinClosed autocmd to clear the
tracked window ID when the user closes it manually. Add drawer_height
config option (default 15).

* fix(buffer): default to natural split height like fugitive

Problem: hardcoded drawer_height=15 was too small and diverged from
fugitive's model. Fugitive issues a plain botright split and lets Vim's
own split rules (equalalways, winheight) divide the available space.

Solution: remove the default height so the split sizes naturally. Only
call nvim_win_set_height when the user sets drawer_height to a positive
value, preserving the opt-in customization path.
This commit is contained in:
Barrett Ruth 2026-02-25 09:34:17 -05:00 committed by GitHub
parent 5db242a9cf
commit fbeb0e2bee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 49 additions and 14 deletions

View file

@ -9,6 +9,7 @@
---@field date_format string
---@field date_syntax string
---@field category_order? string[]
---@field drawer_height? integer
---@field gcal? pending.GcalConfig
---@class pending.config