Skip to content

feat(workbench): 侧栏按钮可以隐藏,布局状态记录隐藏的入口 - #34

Merged
xiaoyumuxi merged 1 commit into
mainfrom
feat/chrome-hidden-stripe-entries
Nov 14, 2026
Merged

xiaoyumuxi merged 1 commit into
mainfrom
feat/chrome-hidden-stripe-entries

Conversation

@xiaoyumuxi

Copy link
Copy Markdown
Contributor

关联 Issue

无单独 Issue。来自用户反馈:桌面端(Viva)在侧栏把按钮隐藏后再也找不回来。桌面端改动在 1lck/Lithe-IDEA 的配套 PR(见下方评论),它把 Core 固定到本 PR 的提交。

改动

workbench.chromeLayout.reduce 的布局状态可以记录隐藏的侧栏按钮:

  • State 新增 hidden,按 placements 的顺序列出隐藏的侧栏按钮。字段带 #[serde(default)],旧的保存状态没有它也能读入。
  • 新增 Action::SetHidden { id, hidden }({"kind":"setHidden","id":"…","hidden":true}):
    • 隐藏时关闭该入口的面板;取消隐藏不改变面板开关。
    • 隐藏的入口保留原来的分区和位置,取消隐藏后回到原处;移动隐藏的入口也保持隐藏。
    • 隐藏的入口仍可以由快捷键或命令(SetOpen/Toggle)打开面板,打开后依然隐藏。
    • 只有侧栏按钮能隐藏;标题栏、状态栏的按钮和未知 id 返回 invalid_request。
  • Reset 恢复全部入口;Normalize 去掉 hidden 里未知、重复和非侧栏的 id。
  • 同步更新 command.rs 的命令说明和 rust/contracts/rust-core-api.md 中 workbench.chromeLayout.reduce 一节。

没有改插件契约、能力版本或插件函数协议。

验证

命令 平台 结果
cargo fmt --all -- --check macOS 通过
./scripts/rust-core/verify-rust-core-comments.sh macOS 通过
cargo clippy --locked --workspace --all-targets -- -D warnings macOS 通过
cargo test --locked --workspace macOS 1959 个通过,0 失败
桌面端 desktop-go.sh test ./internal/core/ ./internal/workbench/,LITHE_CORE_RUST_DIR 指向本提交 macOS 通过

新增的 chrome_layout.rs 测试覆盖:隐藏关闭面板、取消隐藏保留面板状态、隐藏后保留位置、隐藏入口由快捷键打开、移动隐藏入口、非侧栏入口和未知 id 报错、Reset、Normalize,以及没有 hidden 字段的旧状态。

未能执行的检查:没有在 Windows 上运行 cargo test。

- chrome layout 的 State 新增 hidden,按 placements 的顺序列出用户隐藏的侧栏按钮;旧状态没有这个字段也能读入。
- 新增 Action::SetHidden { id, hidden }。隐藏时关闭该入口的面板,取消隐藏不改变面板状态;隐藏的入口保留原来的分区和位置,取消隐藏后回到原处。
- 隐藏的入口仍可以由快捷键或命令打开面板,打开后依然保持隐藏;移动隐藏的入口也保持隐藏。
- 只有侧栏按钮能隐藏,标题栏和状态栏的按钮返回 invalid_request;Reset 恢复全部入口;Normalize 去掉未知、重复和非侧栏的 id。
- 同步更新 command.rs 与 rust-core-api.md 中 workbench.chromeLayout.reduce 的说明。
@xiaoyumuxi
xiaoyumuxi marked this pull request as ready for review November 14, 2026 05:15
@xiaoyumuxi
xiaoyumuxi merged commit 1d4556b into main Nov 14, 2026
5 checks passed
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