Skip to content

feat: split settings into tabbed sections #162

@ScottKirvan

Description

@ScottKirvan

Summary

The settings panel is getting large and will grow further. Split it into a tabbed layout (single PluginSettingTab class, manual tab bar, per-tab render methods) once there are more settings to organize.

Proposed tab groupings (draft — revisit when more settings exist)

Tab Settings
General Binary path, send on enter, resume last session, context file setup prompt
Context @-mention types, context file path, vault tree depth, autonomous memory, inject split-pane/stacked tabs
Permissions Permission mode, UI bridge toggle, prompt for unlisted commands, denylist, command allowlist
Sessions Export folder, session storage path
Skills Skills folder, register skills as Ctrl+P commands
Logging Enable log, log path, log verbosity
Help Docs, Discord, GitHub issues, plugin version

Skills and UI bridge settings may want to live together. Context and Sessions may want to merge. Revisit when the bigger features land.

Help tab

Should mirror the About modal layout and share source with it so there's one place to update links and version display.

Implementation pattern

Folder Notes (github.com/LostPaul/obsidian-folder-notes) uses this pattern:

  • Single addSettingTab() call
  • Tab bar built via containerEl.createDiv() with click handlers
  • data-tab attribute + is-active class for active state
  • Active tab persisted in plugin settings so it restores on reopen
  • Per-tab content in private render methods (or separate files)

Why deferring

More settings are coming. Better to do the split once so groupings reflect the final feature set rather than reorganizing twice.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions