Skip to content

feat(theme): keep Nord default and add the One Dark built-in - #695

Open
ventupx wants to merge 1 commit into
Kuddev:mainfrom
ventupx:contrib/theme-management-one-dark
Open

ventupx wants to merge 1 commit into
Kuddev:mainfrom
ventupx:contrib/theme-management-one-dark

Conversation

@ventupx

@ventupx ventupx commented Oct 21, 2026 •

Copy link
Copy Markdown

Result / 用户结果

Saved custom themes can be edited repeatedly without creating copies, or deleted with confirmation. Deleting the active theme switches to the existing default before removing its file. Adds the supplied One Dark palette as an additional built-in theme. Nord remains the factory and reset default; existing saved theme choices remain valid.

Design / 设计边界

nebula_settings owns the built-in palette and factory default; theme_library owns revision-checked file/preference operations; Settings adapts those operations to dialogs and controls. The existing Nord default, schema/export format and production dependency graph are unchanged. Stale dialogs, failed preference writes and partial deletion failures retain actionable feedback. Palette/fixture source: a contributor-supplied Pebrel theme export, renamed One Dark.

This focused branch starts from upstream 8d6295595e084a12f9c2fe159f65c2dcd332d866. It excludes fork release/version/package metadata. Under the repository's pr-size exclusions, it changes 1164 counted lines, within the 1500-line default.

Evidence / 验证依据

Executed on Windows against this branch:

  • python scripts/check_architecture.py --base upstream/main — passed; existing budgets unchanged.
  • python -m unittest scripts.tests.test_architecture_budgets scripts.tests.test_architecture_dependencies scripts.tests.test_architecture_governance — successful (55 tests, 3 platform-specific skips).
  • cargo test --manifest-path tools/i18n-contract/Cargo.toml --locked — 24 passed, 1 existing ignored test.
  • cargo test -p nebula-settings --locked — 100 passed.
  • cargo test -p nebula --test file_line_budget --locked — 2 passed.
  • cargo fmt --all -- --check and git diff --cached --check — passed.
  • cargo check -p nebula --bin pebrel --features gpui-test-support --tests --locked — passed.
  • cargo test -p nebula --bin pebrel --features gpui-test-support --locked --no-run — passed. Targeted GPUI tests use the same interaction-test feature as upstream CI and the filters below with -- --test-threads=1: 120 passed.

Filters: theme_library::, theme_studio_tests::, appearance_picker_tests::, gpui_shell::theme::, display::ui::theme::tests::, display::command_palette::catalog::tests::.

Regression coverage: Repeated editing, canceled deletion, active/inactive deletion, stale revisions, failed writes, partial failures, retry, narrow-picker controls, exact palette import/export, Nord default/reset and explicit One Dark selection.

Localization: New edit/delete messages use typed IDs with English and Simplified Chinese translations; other locales use the existing English fallback. This does not claim complete translation in all locales.

Visual/platform scope: the integrated changes were manually reviewed in a Windows preview before this split. These branch checks exercise rendered hitboxes/state and keyboard input where applicable; new screenshot captures and a DPI matrix were not run for this head. Linux/macOS current-head validation is left to upstream CI. The earlier full integrated-source validation passed 24 jobs at 6e86ea5c3ff29671043dfc62a788f1d4fde80732; that is supplemental evidence, not a check result for this PR head.

Runtime cost: File I/O remains on the background executor with revision checks and UI lifetime guards. No new render-path file reads or production dependencies; no new performance benchmark is claimed.

Required Review / 必须确认

  • Followed CONTRIBUTING.md, docs/architecture.md, and docs/project-constraints.md.
  • Split by responsibility; no duplicate behavior authority.
  • Architecture check against the upstream target passes; budgets were not inflated.
  • Relevant success/failure/cancellation regressions are covered; platform and visual limitations are stated above.
  • New messages use typed i18n IDs and matching placeholders, with explicit fallback where untranslated.
  • Governance-rule changes: not applicable; none included. Maintainer review and required upstream checks remain necessary before merge.

@ventupx
ventupx requested a review from Kuddev as a code owner October 21, 2026 07:25
@ventupx
ventupx force-pushed the contrib/theme-management-one-dark branch from 2b288f6 to b2c52a4 Compare October 21, 2026 07:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant