reconsider platform opt-in vs opt-out model #329

Closed
opened 2026-03-06 17:31:51 +00:00 by barrettruth · 1 comment
barrettruth commented 2026-03-06 17:31:51 +00:00

Problem

Currently, if a user provides any platforms table in their config, every
platform not explicitly listed is silently dropped — even if the user just
wants to override one platform and use defaults for the rest. This makes
it easy to accidentally disable platforms without realizing it.

Options to consider

  1. Keep opt-in, add a warning — if the user's config omits a platform
    that exists in defaults, emit a DEBUG-level note (not intrusive).
  2. Opt-out model — all platforms enabled by default; user can set
    platform = false to disable.
  3. Merge instead of replace — always include all default platforms,
    deep-merging user overrides on top, so omitting a platform just means
    "use defaults" not "disable".

Option 3 is probably the most ergonomic: users only need to list platforms
they want to customize.

## Problem Currently, if a user provides any `platforms` table in their config, every platform not explicitly listed is silently dropped — even if the user just wants to override one platform and use defaults for the rest. This makes it easy to accidentally disable platforms without realizing it. ## Options to consider 1. **Keep opt-in, add a warning** — if the user's config omits a platform that exists in defaults, emit a `DEBUG`-level note (not intrusive). 2. **Opt-out model** — all platforms enabled by default; user can set `platform = false` to disable. 3. **Merge instead of replace** — always include all default platforms, deep-merging user overrides on top, so omitting a platform just means "use defaults" not "disable". Option 3 is probably the most ergonomic: users only need to list platforms they want to customize.
barrettruth commented 2026-03-06 21:20:28 +00:00

Resolved by #336.

Resolved by #336.
Sign in to join this conversation.
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/cp.nvim#329
No description provided.