Commit graph

2 commits

Author SHA1 Message Date
Barrett Ruth
ac8db6851f
refactor(picker): canonicalize backend names into single table
Problem: picker backend names were hard-coded as string literals in
`picker/init.lua`, `health.lua`, and `init.lua` validation, making
them easy to get out of sync.

Solution: export `backends` and `detect_order` from `forge.picker` and
reference them in health check and config validation instead of
duplicating the name strings.
2026-03-28 17:50:11 -04:00
Barrett Ruth
fa7cab89af
feat(picker): add multi-backend picker abstraction
Problem: all pickers were tightly coupled to fzf-lua via ANSI strings
and fzf-specific action tables, making it impossible to use telescope
or snacks.nvim.

Solution: introduce `forge.picker` dispatcher with `fzf`, `telescope`,
and `snacks` backends. Format functions now return `forge.Segment[]`
instead of ANSI strings. `pickers.lua` builds backend-agnostic
`forge.PickerEntry[]` and delegates to `forge.picker.pick()`. Backend
auto-detection tries fzf-lua, snacks, telescope in order. Commits,
branches, and worktree pickers remain fzf-only with graceful fallback.
2026-03-28 17:48:24 -04:00