fix: opt in to collection features by config presence #49

Merged
barrettruth merged 1 commit from fix/opt-in-collection-features into main 2026-04-20 20:16:53 +00:00
barrettruth commented 2026-04-20 20:13:41 +00:00

Problem

canola-collection registered every optional feature at startup, so users paid setup cost for adapters and git integration they never configured. Trash still used vim.g.canola.delete.trash, and canola-git kept its own enabled toggle, which left the collection with an inconsistent config model.

Solution

Treat every collection feature as opt-in by config presence: only register SSH, S3, FTP, trash, and git when their vim.g.canola_* table is defined, with {} enabling defaults. Move trash opt-in to vim.g.canola_trash, remove the remaining extension-side enabled handling from canola-git, and update docs/specs to cover the presence-based model. Closes #46.

## Problem canola-collection registered every optional feature at startup, so users paid setup cost for adapters and git integration they never configured. Trash still used `vim.g.canola.delete.trash`, and `canola-git` kept its own `enabled` toggle, which left the collection with an inconsistent config model. ## Solution Treat every collection feature as opt-in by config presence: only register SSH, S3, FTP, trash, and git when their `vim.g.canola_*` table is defined, with `{}` enabling defaults. Move trash opt-in to `vim.g.canola_trash`, remove the remaining extension-side `enabled` handling from `canola-git`, and update docs/specs to cover the presence-based model. Closes #46.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
barrettruth/canola-collection!49
No description provided.