From 5a0c332a70bd7f662d38ed6cf5f2f7aeaa9d42a7 Mon Sep 17 00:00:00 2001 From: ThreeFish Date: Sat, 4 Jul 2026 16:12:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(Views):=20=E4=BC=98=E5=8C=96=E4=BE=A7?= =?UTF-8?q?=E8=BE=B9=E6=A0=8F=E8=A7=86=E5=9B=BE=E9=BB=98=E8=AE=A4=E5=B8=83?= =?UTF-8?q?=E5=B1=80=EF=BC=8C=E6=AC=A1=E8=A6=81=E8=A7=86=E5=9B=BE=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=8A=98=E5=8F=A0=E5=B9=B6=E8=AE=BE=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E9=AB=98=E5=BA=A6=E6=9D=83=E9=87=8D;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Stash/Shelf/Worktrees 默认 visibility:collapsed(仅占标题栏、点击即展开), Commit/Graph/Branches 及次要视图分别设 initialSize 高度权重,缓解视图挤占空间。 VS Code 侧边栏视图约 142px 最小展开高度为核心硬编码(官方 #123715 已 not planned), 无法经扩展解除;新默认仅对新安装或「View: Reset View Locations」后生效。 同步 CHANGELOG(Unreleased)与 docs/.agents/issue.md #12。 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang --- CHANGELOG.md | 5 +++++ docs/.agents/issue.md | 8 ++++++++ package.json | 18 ++++++++++++------ 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5123469..f35f935 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ > 面向用户的发布说明(含完整特性叙述与安装指引)见 [`docs/releases/`](./docs/releases/README.md)。 +## [Unreleased] + +### Changed +- **侧边栏视图默认布局优化**:Stash / Shelf / Worktrees 三个次要视图默认折叠(`visibility: "collapsed"`,仅占标题栏、点击即展开),并为各视图设置初始高度权重(`initialSize`:Commit / Graph 较高、Branches 居中、次要视图紧凑),缓解视图挤占空间的体感。注:VS Code 侧边栏视图存在约 142px 硬性最小展开高度(核心硬编码、官方特性请求 [microsoft/vscode#123715](https://github.com/microsoft/vscode/issues/123715) 已 not planned),**无法经扩展解除**;上述默认仅对**新安装**或执行「View: Reset View Locations」后的布局生效。详见 [issue #12](./docs/.agents/issue.md)。 + ## [0.0.11] - 2026-07-04 — 首个正式版(承载 0.0.10 内容)· 发布渠道收敛 Marketplace 首个 VS Code Marketplace **正式发布**版本,承载 0.0.10 预发布通道(rc.1 / rc.2)已验证的全部内容——提交图更名 **Graph** 并对齐官方 Source Control GRAPH、悬浮浮层 iframe 裁剪修复、未提交角标承载迁移、README 真实性校准与中英双语;并将发布渠道收敛为 **VS Code Marketplace 单市场**。`0.0.10` 版位已被预发布通道占用,正式版按官方规则顺延至 `0.0.11`。完整用户视角叙述见 [Release Note v0.0.11](./docs/releases/v0.0.11.md)。 diff --git a/docs/.agents/issue.md b/docs/.agents/issue.md index e81e1f6..11a36ca 100644 --- a/docs/.agents/issue.md +++ b/docs/.agents/issue.md @@ -94,4 +94,12 @@ - **后续防范**:① VS Code 预发布模型下,**打包与发布两端的 `--pre-release` 必须成对出现**;凡「先 package 成 artifact、后 publish 复用同一枚 VSIX」的流水线,预发布判定要在 package 端就落地,不能只在 publish 端加 flag。② 预发布版本号仍须纯 `major.minor.patch`(Marketplace 不接受 `-rc.N` semver 后缀),预发布语义由 `--pre-release` 标志 + tag 命名承载;`0.0.10` 作预发布后正式版须用更高版本(如 `0.0.11`),同一版本号不可既预发布又正式发布。③ OpenVSX 步骤的 `continue-on-error` 只隔离其自身失败——前序 Marketplace 步骤失败仍会使其 skipped;排障时勿因「OpenVSX 未报错」误判其已发布,须查其步骤实际状态与日志。④ Marketplace 发布链路的双凭证不可混淆:`VSCE_PAT`(Azure DevOps PAT,scope Marketplace→Manage)与 `OVSX_PAT`(open-vsx.org token)是不同服务的两个不同 token,且 Marketplace 发布还受仓库变量 `ENABLE_MARKETPLACE_PUBLISH` 门控。 - **同类问题影响**:所有「package 出 artifact → publish 复用」且需发布预发布通道的 VS Code 扩展 CI;凡打包端与发布端 flag 判定不对称(`--pre-release`、平台化 `--target` 等同理)的流水线均会踩。 +## #12 侧边栏视图无法解除最小展开高度(VS Code 核心硬编码 120px + #123715 已 not planned) + +- **表因**:用户反馈 Worktrees 视图展开后无法继续缩小(截图中仍占大片空白),要求「所有视图可拖到任意高度、取消最小高度限制」。 +- **根因**:侧边栏每个视图面板(`Pane`)的最小体高由 VS Code 核心**硬编码 = 120px**(竖直方向;构造函数 `this._minimumBodySize = ... orientation === HORIZONTAL ? 200 : 120`,见 `src/vs/base/browser/ui/splitview/paneview.ts`),加 22px 标题栏,展开态最小 ≈ **142px**,该值经 `minimumSize` 直接驱动 SplitView 拖拽分隔条下限。`WebviewViewPane extends ViewPane` **未覆写** `minimumBodySize`,故本扩展 2 个 webview(Commit/Graph)与 4 个 tree(Branches/Stash/Shelf/Worktrees)视图**共用同一 142px 下限**。允许扩展为活动栏容器内视图指定固定/最小/最大高度的官方特性请求 [microsoft/vscode#123715](https://github.com/microsoft/vscode/issues/123715) 已被**关闭为 not planned / out-of-scope**,从未新增任何 API 或 `package.json` 贡献点。扩展运行于独立进程,拿不到工作台面板对象,`minimumBodySize` setter 仅核心 `ViewPaneContainer` 调用;注入 CSS 亦无效(`.pane-body{min-height:0}` 改不动 JS 层用于夹取拖拽下限的 `minimumSize`)。 +- **处理方式**:该限制**无法经扩展解除**,采用受支持的折中缓解——在 `package.json` `contributes.views` 调初始布局默认值:次要视图 Stash/Shelf/Worktrees 设 `visibility:"collapsed"`(默认仅 22px 标题栏、点击即展开),全部视图加 `initialSize`(Commit 3 / Graph 3 / Branches 2 / 其余 1,类 CSS flex 的高度权重)。两字段经 `src/vs/workbench/api/browser/viewsExtensionPoint.ts` 的 `viewDescriptor` schema 确认可用;`initialSize` **仅当「同一扩展同时拥有视图与视图容器」时生效**(本扩展拥有 `hyper-git` 容器与全部视图,条件满足)。 +- **后续防范**:① VS Code 侧边栏视图存在约 **142px 硬性最小展开高度**,无法经扩展降低——遇「任意高度 / 无最小高度」类诉求应直接引 #123715(not planned)说明平台边界,**勿承诺实现**;判断「webview 内容 CSS `min-height`」与「外层面板最小高度」是两回事。② `visibility` / `initialSize` **只影响初始状态**(「用户手动折叠/移动/隐藏过后即不再生效」)——老用户需命令面板「View: Reset View Locations」或右键容器图标「Reset Location」才采用新默认;实机验证须用**干净 profile 或先重置**以规避持久化布局。③ 想让展开视图更紧凑,只能靠「减少常驻视图数(默认折叠)+ 权重」,而非解除下限。 +- **同类问题影响**:所有向活动栏/侧边栏容器贡献 TreeView/WebviewView 且希望自定义或取消视图高度的扩展;凡把「webview 内容 `min-height` CSS」误认为能改变外层面板最小高度的实现。 + diff --git a/package.json b/package.json index 96c0fe1..07eeff7 100644 --- a/package.json +++ b/package.json @@ -62,33 +62,39 @@ "id": "hyperGit.commit", "name": "Commit", "type": "webview", - "visibility": "visible" + "visibility": "visible", + "initialSize": 3 }, { "id": "hyperGit.log", "name": "Graph", "type": "webview", - "visibility": "visible" + "visibility": "visible", + "initialSize": 3 }, { "id": "hyperGit.branches", "name": "Branches", - "visibility": "visible" + "visibility": "visible", + "initialSize": 2 }, { "id": "hyperGit.stash", "name": "Stash", - "visibility": "visible" + "visibility": "collapsed", + "initialSize": 1 }, { "id": "hyperGit.shelf", "name": "Shelf", - "visibility": "visible" + "visibility": "collapsed", + "initialSize": 1 }, { "id": "hyperGit.worktrees", "name": "Worktrees", - "visibility": "visible" + "visibility": "collapsed", + "initialSize": 1 }, { "id": "hyperGit.changesBadge", From 4b5f5bc2fd257f322fee34a777bf994a30690803 Mon Sep 17 00:00:00 2001 From: ThreeFish Date: Sat, 4 Jul 2026 16:19:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(Views):=20Worktrees=20=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E4=BF=9D=E6=8C=81=E5=B1=95=E5=BC=80=EF=BC=88=E4=BB=85?= =?UTF-8?q?=E4=BB=A5=20initialSize=20=E6=94=B6=E7=AA=84=EF=BC=89=EF=BC=8C?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=96=87=E6=A1=A3;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 依用户偏好将 hyperGit.worktrees 的 visibility 由 collapsed 改回 visible(保留 initialSize:1), 使其默认展开但占位收窄;Stash/Shelf 仍默认折叠。同步校正 CHANGELOG 与 issue #12 表述以对齐最终默认。 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang --- CHANGELOG.md | 2 +- docs/.agents/issue.md | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f35f935..4917d62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ ## [Unreleased] ### Changed -- **侧边栏视图默认布局优化**:Stash / Shelf / Worktrees 三个次要视图默认折叠(`visibility: "collapsed"`,仅占标题栏、点击即展开),并为各视图设置初始高度权重(`initialSize`:Commit / Graph 较高、Branches 居中、次要视图紧凑),缓解视图挤占空间的体感。注:VS Code 侧边栏视图存在约 142px 硬性最小展开高度(核心硬编码、官方特性请求 [microsoft/vscode#123715](https://github.com/microsoft/vscode/issues/123715) 已 not planned),**无法经扩展解除**;上述默认仅对**新安装**或执行「View: Reset View Locations」后的布局生效。详见 [issue #12](./docs/.agents/issue.md)。 +- **侧边栏视图默认布局优化**:Stash / Shelf 两个次要视图默认折叠(`visibility: "collapsed"`,仅占标题栏、点击即展开),Worktrees 保持默认展开、仅以 `initialSize` 收窄;并为各视图设置初始高度权重(`initialSize`:Commit / Graph 较高、Branches 居中、次要视图紧凑),缓解视图挤占空间的体感。注:VS Code 侧边栏视图存在约 142px 硬性最小展开高度(核心硬编码、官方特性请求 [microsoft/vscode#123715](https://github.com/microsoft/vscode/issues/123715) 已 not planned),**无法经扩展解除**;上述默认仅对**新安装**或执行「View: Reset View Locations」后的布局生效。详见 [issue #12](./docs/.agents/issue.md)。 ## [0.0.11] - 2026-07-04 — 首个正式版(承载 0.0.10 内容)· 发布渠道收敛 Marketplace diff --git a/docs/.agents/issue.md b/docs/.agents/issue.md index 11a36ca..38ce72f 100644 --- a/docs/.agents/issue.md +++ b/docs/.agents/issue.md @@ -98,7 +98,7 @@ - **表因**:用户反馈 Worktrees 视图展开后无法继续缩小(截图中仍占大片空白),要求「所有视图可拖到任意高度、取消最小高度限制」。 - **根因**:侧边栏每个视图面板(`Pane`)的最小体高由 VS Code 核心**硬编码 = 120px**(竖直方向;构造函数 `this._minimumBodySize = ... orientation === HORIZONTAL ? 200 : 120`,见 `src/vs/base/browser/ui/splitview/paneview.ts`),加 22px 标题栏,展开态最小 ≈ **142px**,该值经 `minimumSize` 直接驱动 SplitView 拖拽分隔条下限。`WebviewViewPane extends ViewPane` **未覆写** `minimumBodySize`,故本扩展 2 个 webview(Commit/Graph)与 4 个 tree(Branches/Stash/Shelf/Worktrees)视图**共用同一 142px 下限**。允许扩展为活动栏容器内视图指定固定/最小/最大高度的官方特性请求 [microsoft/vscode#123715](https://github.com/microsoft/vscode/issues/123715) 已被**关闭为 not planned / out-of-scope**,从未新增任何 API 或 `package.json` 贡献点。扩展运行于独立进程,拿不到工作台面板对象,`minimumBodySize` setter 仅核心 `ViewPaneContainer` 调用;注入 CSS 亦无效(`.pane-body{min-height:0}` 改不动 JS 层用于夹取拖拽下限的 `minimumSize`)。 -- **处理方式**:该限制**无法经扩展解除**,采用受支持的折中缓解——在 `package.json` `contributes.views` 调初始布局默认值:次要视图 Stash/Shelf/Worktrees 设 `visibility:"collapsed"`(默认仅 22px 标题栏、点击即展开),全部视图加 `initialSize`(Commit 3 / Graph 3 / Branches 2 / 其余 1,类 CSS flex 的高度权重)。两字段经 `src/vs/workbench/api/browser/viewsExtensionPoint.ts` 的 `viewDescriptor` schema 确认可用;`initialSize` **仅当「同一扩展同时拥有视图与视图容器」时生效**(本扩展拥有 `hyper-git` 容器与全部视图,条件满足)。 +- **处理方式**:该限制**无法经扩展解除**,采用受支持的折中缓解——在 `package.json` `contributes.views` 调初始布局默认值:次要视图 Stash/Shelf 设 `visibility:"collapsed"`(默认仅 22px 标题栏、点击即展开),Worktrees 保持 `visible`(仅以 `initialSize` 权重收窄),全部视图加 `initialSize`(Commit 3 / Graph 3 / Branches 2 / 其余 1,类 CSS flex 的高度权重)。两字段经 `src/vs/workbench/api/browser/viewsExtensionPoint.ts` 的 `viewDescriptor` schema 确认可用;`initialSize` **仅当「同一扩展同时拥有视图与视图容器」时生效**(本扩展拥有 `hyper-git` 容器与全部视图,条件满足)。 - **后续防范**:① VS Code 侧边栏视图存在约 **142px 硬性最小展开高度**,无法经扩展降低——遇「任意高度 / 无最小高度」类诉求应直接引 #123715(not planned)说明平台边界,**勿承诺实现**;判断「webview 内容 CSS `min-height`」与「外层面板最小高度」是两回事。② `visibility` / `initialSize` **只影响初始状态**(「用户手动折叠/移动/隐藏过后即不再生效」)——老用户需命令面板「View: Reset View Locations」或右键容器图标「Reset Location」才采用新默认;实机验证须用**干净 profile 或先重置**以规避持久化布局。③ 想让展开视图更紧凑,只能靠「减少常驻视图数(默认折叠)+ 权重」,而非解除下限。 - **同类问题影响**:所有向活动栏/侧边栏容器贡献 TreeView/WebviewView 且希望自定义或取消视图高度的扩展;凡把「webview 内容 `min-height` CSS」误认为能改变外层面板最小高度的实现。 diff --git a/package.json b/package.json index 07eeff7..a1d8ada 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ { "id": "hyperGit.worktrees", "name": "Worktrees", - "visibility": "collapsed", + "visibility": "visible", "initialSize": 1 }, {