用途:为 sidecar 的双栏插件布局(侧边栏+主内容)增加拖拽分隔条调整窗格宽度的能力,用户点击并拖动分隔条即可改变两栏宽度。
主要能力:基于 internal/mouse 包处理点击、拖拽与拖拽结束事件;注册侧边栏、主窗格、分隔条三类命中区域;拖拽时按边界钳制宽度并在拖拽结束时通过 internal/state 持久化;分隔条渲染统一走 ui.RenderHandle 或 paneframe.RenderDividerHandle,避免自行绘制。
必要用法:在插件结构体中持有 mouse.Handler 与 sidebarWidth;在 Update 中处理 tea.MouseMsg;在 mouse.go 中实现 handleMouseClick/handleMouseDrag/handleMouseDragEnd;每次渲染先调用 HitMap.Clear(),再按侧边栏、主窗格、分隔条的顺序注册矩形(最后注册的分隔条优先级最高);宽度仅在 sidebarWidth==0 时从 state 读取或按 30% 默认值初始化,不得在 View 中无条件覆盖;分隔条命中宽度用 3 以方便点击,高度用 p.height。窗格树场景应通过 paneframe 的 RenderDividerHandle 与 DividerHitBox 处理,项目工作区与全局 Sessions 共享同一窗口模型,改动需同时覆盖两处。
限制:资料未提供安装命令、收费、平台或效果数据;实现依赖 sidecar 内部包(internal/mouse、internal/state、internal/paneframe 等),偏移量因插件边框样式而异(如 GitStatus 为 -5、FileBrowser 为 -6),需按具体插件调整。