dsh-ide-git 0.18.1 → 0.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dsh.plugin.json +1 -1
- package/package.json +1 -1
- package/src/client.js +22 -10
package/dsh.plugin.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "dsh-external/dsh-ide-git",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.2",
|
|
4
4
|
"main": "./src/index.js",
|
|
5
5
|
"description": "IDE 级 Git 操作面板:分支树 + 提交图谱 + 变更/暂存/提交 + 提交详情。装了 dsh-better-sidebar 时挂成它的原生 tab(右侧栏 + 底部工作台);没装时直接挂 DSH 原生右侧栏,单独安装即可用。JetBrains 风格 Git 工具窗口 for DeepSeek Harness.",
|
|
6
6
|
"engines": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-ide-git",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.2",
|
|
4
4
|
"description": "DSH plugin: an IDE-grade Git tool window as a native dsh-better-sidebar tab — branch tree, commit graph, changes, commit details, JetBrains-style actions, in the right sidebar and the bottom panel. | DSH 插件:IDE 级 Git 工具窗口,以 dsh-better-sidebar 原生 Tab 挂载——分支树 / 提交图谱 / 变更与提交详情 / JetBrains 风格操作,右侧栏与底部面板双布局自适应。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
package/src/client.js
CHANGED
|
@@ -9829,8 +9829,12 @@ window.__ModuleLoader__.load({
|
|
|
9829
9829
|
}
|
|
9830
9830
|
const handlePick = useCallback((event, entry, selKey) => {
|
|
9831
9831
|
const ordered = visibleRef.current.map((leaf) => branchSelKeyOf(leaf.entry))
|
|
9832
|
-
if (event.shiftKey === true
|
|
9833
|
-
|
|
9832
|
+
if (event.shiftKey === true) {
|
|
9833
|
+
/* No anchor yet (fresh tree, nothing clicked): VS Code semantics —
|
|
9834
|
+
the range starts at the FIRST visible row, so a first-click Shift
|
|
9835
|
+
still multi-selects instead of silently degrading to single. */
|
|
9836
|
+
const anchorKey = pickAnchor.current !== null ? pickAnchor.current : ordered[0]
|
|
9837
|
+
const from = ordered.indexOf(anchorKey)
|
|
9834
9838
|
const to = ordered.indexOf(selKey)
|
|
9835
9839
|
if (from >= 0 && to >= 0) {
|
|
9836
9840
|
const low = Math.min(from, to)
|
|
@@ -10075,9 +10079,12 @@ window.__ModuleLoader__.load({
|
|
|
10075
10079
|
of this handler (their memo compares item/group/t/selected, not the
|
|
10076
10080
|
callback — same stale-callback trade-off as the stage buttons), so
|
|
10077
10081
|
the selection must never be read from it. */
|
|
10078
|
-
if (event.shiftKey === true && anchorRef !== undefined
|
|
10082
|
+
if (event.shiftKey === true && anchorRef !== undefined) {
|
|
10079
10083
|
const ordered = orderedRowKeys()
|
|
10080
|
-
|
|
10084
|
+
/* Anchor falls back to the FIRST row (VS Code semantics): a Shift
|
|
10085
|
+
click on a fresh list must multi-select, not degrade to single. */
|
|
10086
|
+
const anchorKey = anchorRef.current !== null ? anchorRef.current : ordered[0]
|
|
10087
|
+
const from = ordered.indexOf(anchorKey)
|
|
10081
10088
|
const to = ordered.indexOf(key)
|
|
10082
10089
|
if (from >= 0 && to >= 0) {
|
|
10083
10090
|
const low = Math.min(from, to)
|
|
@@ -10704,8 +10711,11 @@ window.__ModuleLoader__.load({
|
|
|
10704
10711
|
/* Functional updates only — memoised CommitRows may hold a stale
|
|
10705
10712
|
closure of this handler (their memo compares commit/row/selected),
|
|
10706
10713
|
so the picked set is never read from it. */
|
|
10707
|
-
if (event.shiftKey === true
|
|
10708
|
-
|
|
10714
|
+
if (event.shiftKey === true) {
|
|
10715
|
+
/* Anchor falls back to the FIRST row (VS Code semantics): a Shift
|
|
10716
|
+
click on a fresh list must multi-select, not degrade to single. */
|
|
10717
|
+
const anchorHash = pickAnchor.current !== null ? pickAnchor.current : ordered[0]
|
|
10718
|
+
const from = ordered.indexOf(anchorHash)
|
|
10709
10719
|
if (from >= 0 && index >= 0) {
|
|
10710
10720
|
const low = Math.min(from, index)
|
|
10711
10721
|
const high = Math.max(from, index)
|
|
@@ -13279,10 +13289,12 @@ window.__ModuleLoader__.load({
|
|
|
13279
13289
|
'.dig-row-sub{color:var(--dsw-alias-label-tertiary);font-size:11px;flex:none;max-width:45%;overflow:hidden;text-overflow:ellipsis}',
|
|
13280
13290
|
'.dig-row-dir{margin-left:auto;opacity:.75}',
|
|
13281
13291
|
'.dig-badge{font-size:10px;padding:0 5px;border-radius:999px;corner-shape:round;background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);flex:none}',
|
|
13282
|
-
/* Ahead/behind colours (user request): pending pushes read green,
|
|
13283
|
-
pulls read blue — the same semantics in the tree rows and the
|
|
13284
|
-
|
|
13285
|
-
'.dig-badge-
|
|
13292
|
+
/* Ahead/behind colours + size (user request): pending pushes read green,
|
|
13293
|
+
pending pulls read blue — the same semantics in the tree rows and the
|
|
13294
|
+
top bar. 12px/600 keeps the counts legible at a glance. */
|
|
13295
|
+
'.dig-badge-ahead,.dig-track-ahead{color:var(--dsw-alias-state-success-primary);font-size:12px;font-weight:600}',
|
|
13296
|
+
'.dig-badge-behind,.dig-track-behind{color:var(--dsw-alias-state-business-primary,var(--dsw-alias-brand-primary));font-size:12px;font-weight:600}',
|
|
13297
|
+
'.dig-badge.dig-badge-ahead,.dig-badge.dig-badge-behind{padding:0 6px}',
|
|
13286
13298
|
'.dig-badge-muted{opacity:.8}',
|
|
13287
13299
|
'.dig-badge-worktree{padding:0 3px;display:inline-flex;align-items:center;height:14px}',
|
|
13288
13300
|
'.dig-history{display:flex;flex-direction:column;min-height:0;flex:1}',
|