优化 macOS 设置窗口布局、控件及全局按钮样式 - #944
arkleselect wants to merge 25 commits into
Conversation
…el-styles # Conflicts: # macos/Sources/Lithe/Views/Git/ChangesSidebarView.swift
1lck
left a comment
There was a problem hiding this comment.
按 lithe-code-review 对当前 head c6872e5de5b379aa922396417298aea5ade1da76 完成代码审查。未发现需要阻塞合并的问题;有 1 个 P2 建议:新下拉弹层的外部点击监听与原按钮 toggle 会处理同一次点击,造成关闭后重开,详见行内意见。
验证:本地 diff、程序包只读、功能矩阵,以及 macOS/Windows 测试稳定性静态检查通过。此次未运行 macOS 原生界面或完整测试;服务边界脚本因 Linux 缺少 PlistBuddy 未完整执行。下面的事件顺序问题来自静态调用链分析。
@1lck 可以合入了,这个我帮忙修复了一下来着 |
概述
参考 IntelliJ IDEA 社区版公开的主题源码和 JetBrains 官方界面规范,统一 macOS 设置窗口右侧页面及常用控件的样式。保留现有设置行为;此 PR 为草稿,供界面和交互审查。
修改内容
LitheTheme中集中定义设置窗口使用的明暗背景、输入框与下拉框底色、边框、弹层、强调色及选中态;修正亮色模式下选中项的文字对比度,避免各页面各自指定冲突颜色。参考依据
验证
./scripts/test-macos.sh --filter 'SettingsSelectPopupGeometryTests|SettingsAppearanceContainerTests|ProjectRuntimeSettingsTests|KeyboardShortcutTests|LSPControlCenterPresentationTests|GitSettingsPresentationTests':41 项测试通过(含新增的小屏幕弹层避让测试)。./.agents/skills/write-stable-tests/scripts/verify-test-stability.sh:通过。./.agents/skills/write-stable-tests/scripts/test-stability-macos.sh -- --filter 'SettingsSelectPopupGeometryTests':3 项测试通过,单项约 0.001 秒,并生成 HTML 报告。./scripts/test-macos.sh --filter GitStatusObservationTests --no-parallel:13 项测试通过;其中一项在完整并行测试中失败。./scripts/test-macos.sh:1626 项测试中出现 44 个失败,分布在未改动的 Git、文档及模块协调等测试;主要表现为等待信号超时,尚未确认整套测试通过。./scripts/verify-service-boundaries.sh:通过。./scripts/verify-platform-feature-matrix-change.sh origin/preview HEAD与./scripts/verify-platform-feature-matrix.sh:通过。git diff --check:通过。待审查事项
新增的下拉弹层视觉细节尚待真实窗口复查。功能矩阵的
verificationStatus仍为pending,因为提交后尚未完成所有设置页面及亮色、暗色、跟随系统模式的完整视觉复查。AI 提交信息格式选择器是展示说明和预览的专用控件,仍保留原有的独立弹层。本次审查修复
plutil -lint macos/Resources/zh-Hans.lproj/Localizable.strings、./scripts/test-macos.sh --filter AppLocalizationTests --no-parallel(18 项通过)、./scripts/verify-runtime-bundle-immutability.sh、功能矩阵检查及变更门禁、git diff --check均通过。快捷键设置页补充
KeymapPanel的分类树与工具栏结构,将 macOS 快捷键页的卡片列表改成紧凑的可折叠分类树;操作可以选中,选中行显示强调色,工具栏提供全部展开、全部折叠、编辑选中操作与搜索。./scripts/test-macos.sh --filter KeyboardShortcutTests --no-parallel(19 项通过),./scripts/test-macos.sh --filter AppLocalizationTests --no-parallel(18 项通过),./scripts/verify-service-boundaries.sh、运行时程序包只读检查、功能矩阵检查及变更门禁、git diff --check均通过。实际窗口的亮暗色与缩放视觉复查仍待完成。快捷键页视觉与图标调整(后续提交)
KeymapPanel和新版ActionsTree渲染器,收紧分类树与操作行的高度、缩小工具栏间距,并调整展开、折叠、编辑和齿轮图标。macOS名称仍只读;三套可切换预设属于独立草稿 PR feat(macOS): 支持三套可切换的快捷键预设 #946,未复制到本 PR。./scripts/test-macos.sh --filter KeyboardShortcutTests --no-parallel(19 项通过)、./scripts/verify-service-boundaries.sh、功能矩阵及变更门禁、git diff --check均通过。验证用预览已关闭。快捷键页图标与搜索框修正
expandAll、collapseAll、edit、chevronRight、search及对应暗色 SVG。工具栏图标和搜索图标保留资源原色,避免 SwiftUI 模板着色改变原本的明暗对比;笔画形状和粗细由 IDEA SVG 本身决定。LitheIcon(.folder)渲染入口;顶部齿轮改用仓库现有的 IDEA 图标映射。搜索框继续复用共享设置控件的边框与底色,不添加局部覆盖;快捷键页移除搜索占位文字并保留辅助功能标签。./scripts/test-macos.sh --filter KeyboardShortcutTests --no-parallel(19 项通过)、./scripts/verify-service-boundaries.sh、./scripts/verify-runtime-bundle-immutability.sh、功能矩阵及变更门禁、git diff --check均通过;新增 SVG 已解析检查。修正后的真实窗口视觉复查尚未完成,因为当前运行的 Lithe 是另一工作树的预览实例。全 App 文字按钮按下态
.plain、.borderless的 238 处按钮统一接入共享LitheNoPressButtonStyle。点击文字或图标时不再由系统短暂降低标签亮度;按钮原有的选中状态及显式定义的背景反馈保持不变。macos/Sources/Lithe,已无旧.plain、.borderless按钮样式引用。./scripts/test-macos.sh --filter KeyboardShortcutTests --no-parallel(19 项通过)、./scripts/verify-service-boundaries.sh、./scripts/verify-runtime-bundle-immutability.sh、功能矩阵及变更门禁、git diff --check均通过。实际按下态视觉复查仍待在本分支预览中完成。快捷键预设旁齿轮按钮
Menu在齿轮旁自动绘制的下拉箭头,保留齿轮和“Restore All Defaults”菜单。./scripts/test-macos.sh --filter KeyboardShortcutTests --no-parallel(19 项通过)、服务边界、运行时程序包只读检查、功能矩阵及变更门禁、git diff --check均通过。CI 修复:快捷键右键菜单
.contextMenu改为仓库共享的.litheContextMenu,保留新增、恢复默认和移除快捷键功能,并统一右键菜单外观。ContextMenuCoverageTests.contextMenusCannotSilentlyBypassSharedStyle();macOS CI gate 因 Swift tests 失败而连带失败。日志中的SLOW行仅是测试耗时排行。./scripts/test-macos.sh --filter ContextMenuCoverageTests(7 项通过);按 CI 相同筛选条件运行的 macOS Swift 测试(1504 项、181 个 suite 全部通过);服务边界、功能矩阵检查及git diff --check通过。Windows CI 测试时限修复
preview后,Windows 的Test real JDT on Windows在git_workspace_commit_push_checks_submodule_publication_before_updating_the_remote用例达到默认 15 秒进程上限时将其终止;Windows CI gate因该作业失败连带报错。该用例在原功能 PR 的 Windows CI 用时 8.3 秒并通过,本次失败报告明确记录为timeout,没有断言失败。git diff --check均通过。Windows 实机结果以本次推送后的 CI 为准。下拉框重复点击修复
test-stability-macos.sh -- --filter SettingsSelectPopupGeometryTests(4 项通过,新增用例 0.063 秒);测试稳定性静态检查、服务边界、运行时程序包只读检查、功能矩阵检查及变更门禁、git diff --check均通过。尚未在真实设置窗口中逐项点击复查,功能矩阵维持待验证。与最新 preview 的冲突处理
preview的多套快捷键预设、欢迎页新布局及工作台更新;快捷键页保留本 PR 的分类树、工具栏、齿轮样式,并接入 macOS、IntelliJ IDEA Classic、Eclipse 预设选择。切换预设时清除正在编辑及已选中的命令。.plain按下效果。git diff --check均通过。远程 CI 仍在运行。下拉弹层原生事件回归测试
8d4022cf已修复原按钮点击时的提前关闭与重新打开。本次新增在 AppKit 窗口中向两个实际LitheSettingsSelect发送鼠标按下/抬起事件的回归测试,验证再次点击原按钮收起、点击另一个下拉框切换弹层、点击空白处关闭弹层。test-stability-macos.sh -- --filter SettingsSelectPopupGeometryTests:5 项通过,新增原生事件用例约 0.116 秒;测试稳定性静态检查、服务边界、程序包只读、功能矩阵及变更门禁、git diff --check通过。审查补充:辅助功能与矩阵清理
shared/platform-feature-matrix.json、Markdown 与 CSV 生成视图。