@heyhuynhgiabuu/pi-diff 0.6.1 → 0.6.3

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.
@@ -39,13 +39,13 @@ export declare function resolveSepStyle(): HunkSeparatorStyle;
39
39
  export declare function getSepStyle(): HunkSeparatorStyle;
40
40
  /**
41
41
  * Generate a hunk separator label for the unified view.
42
- * Returns the full label including spacing, or "···" for empty/default.
42
+ * Returns the full label including spacing, or an empty string when no useful label exists.
43
43
  * If `content` is non-empty, it is used directly (e.g. "───── Edit 2 ─────").
44
44
  */
45
45
  export declare function sepLabelUnified(style: HunkSeparatorStyle, hunkMeta: HunkMeta | undefined, gap: number | null, content?: string): string;
46
46
  /**
47
47
  * Generate a hunk separator label for the split view.
48
- * Wraps the content in "··· ... ···".
48
+ * Returns useful context/gap labels without decorative ellipses.
49
49
  * If `content` is non-empty, it is used directly (e.g. "───── Edit 2 ─────").
50
50
  */
51
51
  export declare function sepLabelSplit(style: HunkSeparatorStyle, hunkMeta: HunkMeta | undefined, gap: number | null, content?: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/core/diff.ts"],"names":[],"mappings":"AAMA,qDAAqD;AACrD,MAAM,WAAW,QAAQ;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IACpC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACd;AAeD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAyB3D;AA+FD,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AAIpF;;;GAGG;AACH,wBAAgB,eAAe,IAAI,kBAAkB,CAQpD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,kBAAkB,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC9B,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,OAAO,CAAC,EAAE,MAAM,GACd,MAAM,CA2BR;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,OAAO,CAAC,EAAE,MAAM,GACd,MAAM,CA4BR;AASD,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,CA8B/D;AAED,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,UAAU,CA2CrF"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/core/diff.ts"],"names":[],"mappings":"AAMA,qDAAqD;AACrD,MAAM,WAAW,QAAQ;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IACpC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACd;AAeD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAyB3D;AA+FD,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AAIpF;;;GAGG;AACH,wBAAgB,eAAe,IAAI,kBAAkB,CAQpD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,kBAAkB,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC9B,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,OAAO,CAAC,EAAE,MAAM,GACd,MAAM,CAyBR;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,OAAO,CAAC,EAAE,MAAM,GACd,MAAM,CA0BR;AASD,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,CA8B/D;AAED,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,UAAU,CA2CrF"}
package/dist/core/diff.js CHANGED
@@ -145,7 +145,7 @@ export function getSepStyle() {
145
145
  }
146
146
  /**
147
147
  * Generate a hunk separator label for the unified view.
148
- * Returns the full label including spacing, or "···" for empty/default.
148
+ * Returns the full label including spacing, or an empty string when no useful label exists.
149
149
  * If `content` is non-empty, it is used directly (e.g. "───── Edit 2 ─────").
150
150
  */
151
151
  export function sepLabelUnified(style, hunkMeta, gap, content) {
@@ -155,24 +155,23 @@ export function sepLabelUnified(style, hunkMeta, gap, content) {
155
155
  const ctx = hunkMeta?.context;
156
156
  switch (style) {
157
157
  case "simple":
158
- return "···";
158
+ return "";
159
159
  case "gap":
160
160
  if (gap && gap > 0)
161
161
  return ` ${gap} unmodified lines `;
162
- return "···";
162
+ return "";
163
163
  case "context":
164
164
  if (ctx)
165
165
  return ` ${ctx} `;
166
166
  if (gap && gap > 0)
167
167
  return ` ${gap} unmodified lines `;
168
- return "···";
169
- case "metadata": {
170
- if (!hunkMeta)
171
- return "···";
172
- const hdr = `@@ -${hunkMeta.oldStart},${hunkMeta.oldLines} +${hunkMeta.newStart},${hunkMeta.newLines} @@`;
173
- const label = ctx ? `${hdr} ${ctx}` : hdr;
174
- return ` ${label} `;
175
- }
168
+ return "";
169
+ case "metadata":
170
+ if (ctx)
171
+ return ` ${ctx} `;
172
+ if (gap && gap > 0)
173
+ return ` +${gap} lines `;
174
+ return "";
176
175
  case "auto":
177
176
  default:
178
177
  if (ctx && gap && gap > 0)
@@ -181,12 +180,12 @@ export function sepLabelUnified(style, hunkMeta, gap, content) {
181
180
  return ` ${ctx} `;
182
181
  if (gap && gap > 0)
183
182
  return ` +${gap} lines `;
184
- return "···";
183
+ return "";
185
184
  }
186
185
  }
187
186
  /**
188
187
  * Generate a hunk separator label for the split view.
189
- * Wraps the content in "··· ... ···".
188
+ * Returns useful context/gap labels without decorative ellipses.
190
189
  * If `content` is non-empty, it is used directly (e.g. "───── Edit 2 ─────").
191
190
  */
192
191
  export function sepLabelSplit(style, hunkMeta, gap, content) {
@@ -196,35 +195,34 @@ export function sepLabelSplit(style, hunkMeta, gap, content) {
196
195
  const ctx = hunkMeta?.context;
197
196
  switch (style) {
198
197
  case "simple":
199
- return "···";
198
+ return "";
200
199
  case "gap":
201
200
  if (gap && gap > 0)
202
- return `··· ${gap} lines ···`;
203
- return "···";
201
+ return ` ${gap} lines `;
202
+ return "";
204
203
  case "context":
205
204
  if (ctx && gap && gap > 0)
206
- return `··· ${ctx} — ${gap} lines ···`;
205
+ return ` ${ctx} — ${gap} lines `;
207
206
  if (ctx)
208
- return `··· ${ctx} ···`;
207
+ return ` ${ctx} `;
209
208
  if (gap && gap > 0)
210
- return `··· ${gap} lines ···`;
211
- return "···";
212
- case "metadata": {
213
- if (!hunkMeta)
214
- return "···";
215
- const hdr = `@@ -${hunkMeta.oldStart},${hunkMeta.oldLines} +${hunkMeta.newStart},${hunkMeta.newLines} @@`;
216
- const content = ctx ? `${hdr} ${ctx}` : hdr;
217
- return `··· ${content} ···`;
218
- }
209
+ return ` ${gap} lines `;
210
+ return "";
211
+ case "metadata":
212
+ if (ctx)
213
+ return ` ${ctx} `;
214
+ if (gap && gap > 0)
215
+ return ` ${gap} lines `;
216
+ return "";
219
217
  case "auto":
220
218
  default:
221
219
  if (ctx && gap && gap > 0)
222
- return `··· ${ctx} — +${gap} lines ···`;
220
+ return ` ${ctx} — +${gap} lines `;
223
221
  if (ctx)
224
- return `··· ${ctx} ···`;
222
+ return ` ${ctx} `;
225
223
  if (gap && gap > 0)
226
- return `··· +${gap} lines ···`;
227
- return "···";
224
+ return ` +${gap} lines `;
225
+ return "";
228
226
  }
229
227
  }
230
228
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/core/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/core/diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAgC7B,8EAA8E;AAC9E,6BAA6B;AAC7B,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,sCAAsC;AACtC,EAAE;AACF,yBAAyB;AACzB,qEAAqE;AACrE,2DAA2D;AAC3D,6EAA6E;AAC7E,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC5C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAEvC,2BAA2B;IAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,IAAI,GAAG,GAAa,EAAE,CAAC;IAEvB,yDAAyD;IACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1G,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvC,GAAG,GAAG,EAAE,CAAC;QACV,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,qDAAqD;AACrD,SAAS,YAAY,CAAC,KAAe;IACpC,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,EACZ,OAAO,GAAG,CAAC,CAAC;IAEb,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,CAAC,EAAE,CAAC;YACJ,SAAS;QACV,CAAC;QAED,wEAAwE;QACxE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxE,2DAA2D;YAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QACnF,CAAC;aAAM,CAAC;YACP,uEAAuE;YACvE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC/F,CAAC;QAED,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC;QACtB,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC;QAEtB,+BAA+B;QAC/B,CAAC,EAAE,CAAC;QAEJ,6DAA6D;QAC7D,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,2CAA2C;YAC7E,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,CAAC,EAAE,CAAC;gBACJ,SAAS,CAAC,iCAAiC;YAC5C,CAAC;YACD,IAAI,2FAA2F,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5G,CAAC,EAAE,CAAC;gBACJ,SAAS,CAAC,wBAAwB;YACnC,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/E,CAAC;iBAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9E,KAAK,EAAE,CAAC;YACT,CAAC;iBAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9E,OAAO,EAAE,CAAC;YACX,CAAC;YACD,CAAC,EAAE,CAAC;QACL,CAAC;IACF,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,mDAAmD;IACnD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;YAAE,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,IAAY;IACpC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACvF,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAC1C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,SAAS;IACjB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACtD,CAAC;AAaD,IAAI,SAAS,GAAuB,MAAM,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC9C,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACnF,SAAS,GAAG,OAA6B,CAAC;IAC3C,CAAC;SAAM,CAAC;QACP,SAAS,GAAG,MAAM,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IAC1B,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC9B,KAAyB,EACzB,QAA8B,EAC9B,GAAkB,EAClB,OAAgB;IAEhB,+DAA+D;IAC/D,IAAI,OAAO;QAAE,OAAO,IAAI,OAAO,GAAG,CAAC;IACnC,MAAM,GAAG,GAAG,QAAQ,EAAE,OAAO,CAAC;IAC9B,QAAQ,KAAK,EAAE,CAAC;QACf,KAAK,QAAQ;YACZ,OAAO,EAAE,CAAC;QACX,KAAK,KAAK;YACT,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,IAAI,GAAG,oBAAoB,CAAC;YACvD,OAAO,EAAE,CAAC;QACX,KAAK,SAAS;YACb,IAAI,GAAG;gBAAE,OAAO,IAAI,GAAG,GAAG,CAAC;YAC3B,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,IAAI,GAAG,oBAAoB,CAAC;YACvD,OAAO,EAAE,CAAC;QACX,KAAK,UAAU;YACd,IAAI,GAAG;gBAAE,OAAO,IAAI,GAAG,GAAG,CAAC;YAC3B,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,KAAK,GAAG,SAAS,CAAC;YAC7C,OAAO,EAAE,CAAC;QACX,KAAK,MAAM,CAAC;QACZ;YACC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;YAC7D,IAAI,GAAG;gBAAE,OAAO,IAAI,GAAG,GAAG,CAAC;YAC3B,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,KAAK,GAAG,SAAS,CAAC;YAC7C,OAAO,EAAE,CAAC;IACZ,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC5B,KAAyB,EACzB,QAA8B,EAC9B,GAAkB,EAClB,OAAgB;IAEhB,+DAA+D;IAC/D,IAAI,OAAO;QAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,QAAQ,EAAE,OAAO,CAAC;IAC9B,QAAQ,KAAK,EAAE,CAAC;QACf,KAAK,QAAQ;YACZ,OAAO,EAAE,CAAC;QACX,KAAK,KAAK;YACT,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,IAAI,GAAG,SAAS,CAAC;YAC5C,OAAO,EAAE,CAAC;QACX,KAAK,SAAS;YACb,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;YAC5D,IAAI,GAAG;gBAAE,OAAO,IAAI,GAAG,GAAG,CAAC;YAC3B,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,IAAI,GAAG,SAAS,CAAC;YAC5C,OAAO,EAAE,CAAC;QACX,KAAK,UAAU;YACd,IAAI,GAAG;gBAAE,OAAO,IAAI,GAAG,GAAG,CAAC;YAC3B,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,IAAI,GAAG,SAAS,CAAC;YAC5C,OAAO,EAAE,CAAC;QACX,KAAK,MAAM,CAAC;QACZ;YACC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;YAC7D,IAAI,GAAG;gBAAE,OAAO,IAAI,GAAG,GAAG,CAAC;YAC3B,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,KAAK,GAAG,SAAS,CAAC;YAC7C,OAAO,EAAE,CAAC;IACZ,CAAC;AACF,CAAC;AAeD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAgB;IACjD,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAEzB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxD,CAAC,EAAE,CAAC;YACJ,SAAS;QACV,CAAC;QAED,gCAAgC;QAChC,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACpD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,EAAE,CAAC;QACL,CAAC;QAED,gCAAgC;QAChC,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACpD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,EAAE,CAAC;QACL,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC/D,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,UAAkB,EAAE,UAAkB,EAAE,GAAG,GAAG,CAAC;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QAChD,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAa;YACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACpB,CAAC;QAEF,oEAAoE;QACpE,0EAA0E;QAC1E,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACtG,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC;QACpB,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,GAAG,KAAK,8BAA8B;gBAAE,SAAS;YACrD,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvE,KAAK,EAAE,CAAC;YACT,CAAC;iBAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvE,OAAO,EAAE,CAAC;YACX,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;AAChF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EACL,iBAAiB,EAEjB,WAAW,EACX,KAAK,UAAU,EACf,SAAS,EACT,eAAe,EACf,eAAe,EAGhB,MAAM,gBAAgB,CAAC;AAaxB,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAgdxD,oFAAoF;AACpF,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAuKD,iBAAS,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIpD;AA6VD,iBAAe,aAAa,CAC1B,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,GAAG,SAAmB,EACtB,EAAE,GAAE,UAAgC,GACnC,OAAO,CAAC,MAAM,CAAC,CA8HjB;AAMD,iBAAe,WAAW,CACxB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,GAAG,SAAoB,EACvB,EAAE,GAAE,UAAgC,GACnC,OAAO,CAAC,MAAM,CAAC,CAmLjB;AAMD,eAAO,MAAM,SAAS;;;;;;;;;CASrB,CAAC;AAEF,wBAA8B,qBAAqB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoxBnF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EACL,iBAAiB,EAEjB,WAAW,EACX,KAAK,UAAU,EACf,SAAS,EACT,eAAe,EACf,eAAe,EAGhB,MAAM,gBAAgB,CAAC;AAaxB,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAgdxD,oFAAoF;AACpF,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAuKD,iBAAS,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIpD;AAoWD,iBAAe,aAAa,CAC1B,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,GAAG,SAAmB,EACtB,EAAE,GAAE,UAAgC,GACnC,OAAO,CAAC,MAAM,CAAC,CAkIjB;AAMD,iBAAe,WAAW,CACxB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,GAAG,SAAoB,EACvB,EAAE,GAAE,UAAgC,GACnC,OAAO,CAAC,MAAM,CAAC,CA2KjB;AAMD,eAAO,MAAM,SAAS;;;;;;;;;CASrB,CAAC;AAEF,wBAA8B,qBAAqB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoxBnF"}
package/dist/index.js CHANGED
@@ -197,7 +197,7 @@ function autoDeriveBgFromTheme(theme) {
197
197
  // flashes between styled segments when toolSuccessBg is non-black
198
198
  RST = `\x1b[0m${BG_BASE}`;
199
199
  // Rebuild derived constants
200
- DIVIDER = `${FG_RULE}│${RST}`;
200
+ DIVIDER = `${FG_RULE}${RST}`;
201
201
  }
202
202
  catch {
203
203
  // Fall back to defaults silently
@@ -307,7 +307,7 @@ function applyDiffPalette() {
307
307
  if (shiki)
308
308
  THEME = shiki;
309
309
  // --- Rebuild derived constants ---
310
- DIVIDER = `${FG_RULE}│${RST}`;
310
+ DIVIDER = `${FG_RULE}${RST}`;
311
311
  DEFAULT_DIFF_COLORS = { fgAdd: FG_ADD, fgDel: FG_DEL, fgCtx: FG_DIM };
312
312
  // If no explicit bg config, auto-derive will run on first render
313
313
  _autoDerivePending = !_hasExplicitBgConfig;
@@ -342,10 +342,10 @@ function envBg(name, fallback) {
342
342
  // --- Split-view thresholds ---
343
343
  // Split is preferred when there's real room. At narrow widths, a clean stacked
344
344
  // (unified) view is better than a cramped split with wrapping.
345
- const SPLIT_MIN_WIDTH = envInt("DIFF_SPLIT_MIN_WIDTH", 150); // need ≥150 cols for split to breathe
346
- const SPLIT_MIN_CODE_WIDTH = envInt("DIFF_SPLIT_MIN_CODE_WIDTH", 60); // ≥60 code cols per side
347
- const SPLIT_MAX_WRAP_RATIO = 0.2; // if >20% lines wrap in split, fall back to stacked
348
- const SPLIT_MAX_WRAP_LINES = 8; // absolute cap before unified fallback
345
+ const SPLIT_MIN_WIDTH = envInt("DIFF_SPLIT_MIN_WIDTH", 80); // allow split in normal terminals
346
+ const SPLIT_MIN_CODE_WIDTH = envInt("DIFF_SPLIT_MIN_CODE_WIDTH", 24); // short balanced hunks can split
347
+ const SPLIT_MAX_WRAP_RATIO = 0.35; // wrap-heavy hunks fall back to unified
348
+ const SPLIT_MAX_WRAP_LINES = 10; // absolute cap before unified fallback
349
349
  // --- Terminal bounds ---
350
350
  const MAX_TERM_WIDTH = 210; // max for 1728px wide display (~205 cols at typical font)
351
351
  const DEFAULT_TERM_WIDTH = 200; // safe default for 1728x1117 resolution
@@ -394,7 +394,7 @@ function getBorderBar() {
394
394
  function stripes(w, _rowOffset) {
395
395
  return BG_BASE + FG_STRIPE + "╱".repeat(w) + RST;
396
396
  }
397
- let DIVIDER = `${FG_RULE}│${RST}`;
397
+ let DIVIDER = `${FG_RULE}${RST}`;
398
398
  const ESC_RE = "\u001b";
399
399
  const ANSI_RE = new RegExp(`${ESC_RE}\\[[0-9;]*m`, "g");
400
400
  const ANSI_CAPTURE_RE = new RegExp(`${ESC_RE}\\[([^m]*)m`, "g");
@@ -677,13 +677,20 @@ function shouldUseSplit(diff, tw, maxRows = MAX_PREVIEW_LINES) {
677
677
  if (tw < SPLIT_MIN_WIDTH)
678
678
  return false;
679
679
  const nw = Math.max(2, String(Math.max(...diff.lines.map((l) => l.oldNum ?? l.newNum ?? 0), 0)).length);
680
- const half = Math.floor((tw - 1) / 2); // -1 for center divider
680
+ const half = Math.floor(tw / 2);
681
681
  const gw = nw + 4; // border + num + spaces around sign
682
682
  const cw = Math.max(12, half - gw);
683
683
  if (cw < SPLIT_MIN_CODE_WIDTH)
684
684
  return false;
685
- // Estimate how many lines would need wrapping at this code width
685
+ // Split view only helps balanced replacements. One-sided or heavily
686
+ // imbalanced hunks waste a column and should use unified rendering.
686
687
  const vis = diff.lines.slice(0, maxRows);
688
+ const visibleAdd = vis.filter((line) => line.type === "add").length;
689
+ const visibleDel = vis.filter((line) => line.type === "del").length;
690
+ if (visibleAdd === 0 || visibleDel === 0)
691
+ return false;
692
+ if (Math.max(visibleAdd, visibleDel) > Math.min(visibleAdd, visibleDel) * 2)
693
+ return false;
687
694
  let contentLines = 0;
688
695
  let wrapCandidates = 0;
689
696
  for (const l of vis) {
@@ -934,6 +941,10 @@ async function renderUnified(diff, language, max = MAX_RENDER_LINES, dc = DEFAUL
934
941
  // Hunk separator — collapsed context with optional function context
935
942
  if (l.type === "sep") {
936
943
  const label = sepLabelUnified(getSepStyle(), l.hunkMeta, l.newNum, l.content);
944
+ if (!label) {
945
+ idx++;
946
+ continue;
947
+ }
937
948
  const totalW = Math.min(tw, 72);
938
949
  const pad = Math.max(0, totalW - label.length - 2);
939
950
  const half1 = Math.floor(pad / 2), half2 = pad - half1;
@@ -1038,9 +1049,9 @@ async function renderSplit(diff, language, max = MAX_PREVIEW_LINES, dc = DEFAULT
1038
1049
  rows.push({ left: dels[j] ?? null, right: adds[j] ?? null });
1039
1050
  }
1040
1051
  const vis = rows.slice(0, max);
1041
- const half = Math.floor((tw - 1) / 2); // -1 for center divider
1042
1052
  const nw = Math.max(2, String(Math.max(...diff.lines.map((l) => l.oldNum ?? l.newNum ?? 0), 0)).length);
1043
1053
  const gw = nw + 4; // border + num + spaces around sign
1054
+ const half = Math.floor(tw / 2);
1044
1055
  const cw = Math.max(12, half - gw);
1045
1056
  const canHL = diff.chars <= MAX_HL_CHARS && vis.length * 2 <= MAX_RENDER_LINES * 2;
1046
1057
  // Build separate code blocks per side
@@ -1060,16 +1071,15 @@ async function renderSplit(diff, language, max = MAX_PREVIEW_LINES, dc = DEFAULT
1060
1071
  let lI = 0, rI = 0;
1061
1072
  let stripeRow = 0; // tracks row index for diagonal stripe offset
1062
1073
  function half_build(line, hl, ranges, side) {
1063
- // Empty filler — diagonal stripes
1074
+ // Empty filler — render nothing to avoid dead-column gaps.
1064
1075
  if (!line) {
1065
- const gw2 = nw + 4; // border + number + spaces around sign
1066
- const gPat = FG_STRIPE + "╱".repeat(gw2) + RST;
1067
- const g = gPat;
1068
- return { gutter: g, contGutter: g, bodyRows: [stripes(cw, stripeRow)] };
1076
+ return { gutter: "", contGutter: "", bodyRows: [""] };
1069
1077
  }
1070
1078
  // Hunk separator with optional function context
1071
1079
  if (line.type === "sep") {
1072
1080
  const label = sepLabelSplit(getSepStyle(), line.hunkMeta, line.newNum, line.content);
1081
+ if (!label)
1082
+ return { gutter: "", contGutter: "", bodyRows: [""] };
1073
1083
  const g = `${BG_BASE} ${FG_DIM}${fit("", nw + 3)}${RST}`;
1074
1084
  return { gutter: g, contGutter: g, bodyRows: [`${BG_BASE}${FG_DIM}${fit(label, cw)}${RST}`] };
1075
1085
  }
@@ -1108,7 +1118,7 @@ async function renderSplit(diff, language, max = MAX_PREVIEW_LINES, dc = DEFAULT
1108
1118
  // Column headers — "old" / "new" positioned above line numbers
1109
1119
  const hdrOld = `${BG_BASE}${" ".repeat(Math.max(0, nw - 2))}${dc.fgDel}${DIM}old${RST}`;
1110
1120
  const hdrNew = `${BG_BASE}${" ".repeat(Math.max(0, nw - 2))}${dc.fgAdd}${DIM}new${RST}`;
1111
- out.push(`${BG_BASE}${hdrOld}${" ".repeat(Math.max(0, half - nw - 1))}${FG_RULE}┊${RST}${hdrNew}`);
1121
+ out.push(`${BG_BASE}${hdrOld}${" ".repeat(Math.max(0, half - nw))}${hdrNew}`);
1112
1122
  for (const r of vis) {
1113
1123
  const leftLine = r.left, rightLine = r.right;
1114
1124
  const paired = leftLine && rightLine && leftLine.type === "del" && rightLine.type === "add";
@@ -1133,18 +1143,16 @@ async function renderSplit(diff, language, max = MAX_PREVIEW_LINES, dc = DEFAULT
1133
1143
  lResult = half_build(leftLine, lhl, null, "left");
1134
1144
  rResult = half_build(rightLine, rhl, null, "right");
1135
1145
  }
1136
- // Compose wrapped rows pad shorter side with striped continuation rows
1146
+ // Compose wrapped rows; missing sides render empty to avoid dead-column gaps.
1137
1147
  const maxRows = Math.max(lResult.bodyRows.length, rResult.bodyRows.length);
1138
- const leftIsEmpty = !r.left;
1139
- const rightIsEmpty = !r.right;
1140
1148
  for (let row = 0; row < maxRows; row++) {
1141
1149
  const lg = row === 0 ? lResult.gutter : lResult.contGutter;
1142
1150
  const rg = row === 0 ? rResult.gutter : rResult.contGutter;
1143
- const lb = lResult.bodyRows[row] ??
1144
- (leftIsEmpty ? stripes(cw, stripeRow) : `${BG_EMPTY}${" ".repeat(cw)}${RST}`);
1145
- const rb = rResult.bodyRows[row] ??
1146
- (rightIsEmpty ? stripes(cw, stripeRow) : `${BG_EMPTY}${" ".repeat(cw)}${RST}`);
1147
- out.push(`${lg}${lb}${DIVIDER}${rg}${rb}`);
1151
+ const lb = lResult.bodyRows[row] ?? "";
1152
+ const rb = rResult.bodyRows[row] ?? "";
1153
+ if (!lg && !rg && !lb && !rb)
1154
+ continue;
1155
+ out.push(`${lg}${lb.trimEnd()}${rg}${rb.trimEnd()}`);
1148
1156
  stripeRow++;
1149
1157
  }
1150
1158
  }