@spences10/pi-git-ui 0.0.1 → 0.0.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.
@@ -1,7 +1,7 @@
1
- import { Text } from '@earendil-works/pi-tui';
2
1
  import { CommitComposer } from './commit-composer.js';
3
- import { commit, EMPTY_STATUS, format_git_error, has_staged_changes, read_diff, read_status, stage_all, stage_file, staged_file_count, toggle_file, unstage_all, unstage_file, } from './git.js';
4
- import { key_is_down, key_is_up, pad_ansi, pad_plain, state_counts, state_icon, state_label, status_code, truncate_plain, } from './render.js';
2
+ import { changed_line_indexes, commit, discard_file, EMPTY_STATUS, format_git_error, has_staged_changes, read_diff, read_repo_overview, read_status, stage_all, stage_file, stage_hunk, stage_line, staged_file_count, toggle_file, unstage_all, unstage_file, unstage_hunk, unstage_line, } from './git.js';
3
+ import { key_is_down, key_is_up, state_label, status_code, } from './render.js';
4
+ import { render_stage } from './stage-render.js';
5
5
  export class GitStageBody {
6
6
  cwd;
7
7
  theme;
@@ -9,12 +9,21 @@ export class GitStageBody {
9
9
  done;
10
10
  selected = 0;
11
11
  diff_scroll = 0;
12
+ selected_hunk = 0;
13
+ selected_line_index;
12
14
  status = EMPTY_STATUS;
13
15
  diff;
14
16
  diff_for_path = '';
15
17
  busy = false;
16
18
  message = '';
19
+ filter_text = '';
20
+ capturing_filter = false;
21
+ actions;
22
+ selected_action = 0;
23
+ repo_overview;
24
+ show_help = false;
17
25
  composer;
26
+ diff_request_id = 0;
18
27
  _focused = false;
19
28
  constructor(cwd, theme, request_render, done) {
20
29
  this.cwd = cwd;
@@ -54,12 +63,23 @@ export class GitStageBody {
54
63
  render(width) {
55
64
  if (this.composer)
56
65
  return this.composer.render(width);
57
- const lines = this.render_header(width);
58
- if (this.message)
59
- lines.push(...this.render_message(width));
60
- if (this.status.files.length === 0)
61
- return lines;
62
- return [...lines, ...this.render_workbench(width)];
66
+ return render_stage({
67
+ theme: this.theme,
68
+ status: this.status,
69
+ message: this.message,
70
+ busy: this.busy,
71
+ visible_files: this.visible_files(),
72
+ selected: this.selected,
73
+ diff: this.diff,
74
+ diff_for_path: this.diff_for_path,
75
+ diff_scroll: this.diff_scroll,
76
+ selected_hunk: this.selected_hunk,
77
+ selected_line_index: this.selected_line_index,
78
+ actions: this.actions,
79
+ selected_action: this.selected_action,
80
+ repo_overview: this.repo_overview,
81
+ show_help: this.show_help,
82
+ }, width);
63
83
  }
64
84
  handleInput(data) {
65
85
  if (this.composer) {
@@ -67,6 +87,28 @@ export class GitStageBody {
67
87
  this.request_render();
68
88
  return;
69
89
  }
90
+ if (this.actions) {
91
+ this.handle_action_input(data);
92
+ this.request_render();
93
+ return;
94
+ }
95
+ if (this.show_help) {
96
+ if (data === '\x1B' || data === 'q' || data === '?')
97
+ this.show_help = false;
98
+ this.request_render();
99
+ return;
100
+ }
101
+ if (this.repo_overview) {
102
+ if (data === '\x1B' || data === 'q')
103
+ this.repo_overview = undefined;
104
+ this.request_render();
105
+ return;
106
+ }
107
+ if (this.capturing_filter) {
108
+ this.handle_filter_input(data);
109
+ this.request_render();
110
+ return;
111
+ }
70
112
  if (this.busy)
71
113
  return;
72
114
  if (data === 'q' || data === '\x1B') {
@@ -87,14 +129,40 @@ export class GitStageBody {
87
129
  void this.stage_selected();
88
130
  else if (data === 'x')
89
131
  void this.unstage_selected();
132
+ else if (data === 'S')
133
+ void this.stage_selected_hunk();
134
+ else if (data === 'X')
135
+ void this.unstage_selected_hunk();
136
+ else if (data === '+')
137
+ void this.stage_selected_line();
138
+ else if (data === '-')
139
+ void this.unstage_selected_line();
140
+ else if (data === ']')
141
+ this.move_line(1);
142
+ else if (data === '[')
143
+ this.move_line(-1);
144
+ else if (data === 'n')
145
+ this.move_hunk(1);
146
+ else if (data === 'p')
147
+ this.move_hunk(-1);
90
148
  else if (data === 'a')
91
149
  void this.stage_all_safely();
92
150
  else if (data === 'A')
93
151
  void this.run(() => stage_all(this.cwd), 'Force-staged all changes');
94
152
  else if (data === 'u')
95
153
  void this.run(() => unstage_all(this.cwd), 'Unstaged all changes');
154
+ else if (data === 'g')
155
+ void this.open_repo_overview();
96
156
  else if (data === 'c')
97
157
  this.open_commit_composer();
158
+ else if (data === 'm')
159
+ this.open_commit_composer(true);
160
+ else if (data === '\r' || data === '\n')
161
+ this.open_action_menu();
162
+ else if (data === '?')
163
+ this.show_help = true;
164
+ else if (data === '/')
165
+ this.start_filter();
98
166
  else if (data === 'r')
99
167
  void this.load(this.selected_file()?.path);
100
168
  this.request_render();
@@ -102,132 +170,136 @@ export class GitStageBody {
102
170
  invalidate() {
103
171
  this.composer?.invalidate();
104
172
  }
173
+ visible_files() {
174
+ const query = this.filter_text.trim().toLowerCase();
175
+ if (!query)
176
+ return this.status.files;
177
+ return this.status.files.filter((file) => {
178
+ const searchable_text = `${file.path} ${state_label(file.state)} ${status_code(file)}`;
179
+ return searchable_text.toLowerCase().includes(query);
180
+ });
181
+ }
182
+ selected_file() {
183
+ return this.visible_files()[this.selected];
184
+ }
105
185
  restore_selection(preferred_path) {
106
- const path = preferred_path ?? this.status.files[this.selected]?.path;
186
+ const files = this.visible_files();
187
+ const path = preferred_path ?? files[this.selected]?.path;
107
188
  const index = path
108
- ? this.status.files.findIndex((file) => file.path === path)
189
+ ? files.findIndex((file) => file.path === path)
109
190
  : -1;
110
191
  this.selected =
111
192
  index >= 0
112
193
  ? index
113
- : Math.min(this.selected, Math.max(0, this.status.files.length - 1));
114
- }
115
- render_header(width) {
116
- const upstream = this.status.upstream
117
- ? ` • ${this.status.upstream} ↑${this.status.ahead} ↓${this.status.behind}`
118
- : '';
119
- const counts = state_counts(this.status.files);
120
- const staged = staged_file_count(this.status.files);
121
- const text = `branch ${this.status.branch}${upstream} • ${this.status.files.length} files • staged ${staged}${counts ? ` • ${counts}` : ''}`;
122
- return new Text(this.theme.fg('muted', text), 0, 0).render(width);
123
- }
124
- render_message(width) {
125
- const color = this.busy
126
- ? 'accent'
127
- : this.message.includes('disabled') ||
128
- this.message.includes('conflict') ||
129
- this.message.includes('blocked')
130
- ? 'warning'
131
- : 'dim';
132
- return new Text(this.theme.fg(color, this.message), 0, 0).render(width);
133
- }
134
- render_workbench(width) {
135
- const gap = width >= 96 ? 3 : 1;
136
- const list_width = Math.min(42, Math.max(28, Math.floor(width * 0.42)));
137
- const diff_width = Math.max(20, width - list_width - gap);
138
- const list = this.render_file_list(list_width);
139
- const diff = this.render_diff(diff_width, list.length);
140
- const height = Math.max(list.length, diff.length);
141
- const lines = [];
142
- for (let i = 0; i < height; i++) {
143
- const left = pad_ansi(list[i] ?? '', list_width);
144
- lines.push(`${left}${' '.repeat(gap)}${diff[i] ?? ''}`);
145
- }
146
- return lines;
147
- }
148
- render_file_list(width) {
149
- const lines = [this.theme.bold('Files')];
150
- let last_state;
151
- for (let i = 0; i < this.status.files.length; i++) {
152
- const file = this.status.files[i];
153
- if (file.state !== last_state) {
154
- lines.push(this.theme.fg('dim', state_label(file.state).toUpperCase()));
155
- last_state = file.state;
156
- }
157
- const selected = i === this.selected;
158
- const prefix = selected ? '› ' : ' ';
159
- const label_width = Math.max(8, width - 14);
160
- const label = truncate_plain(file.path, label_width);
161
- const meta = `${state_icon(file.state)} ${status_code(file)}`;
162
- const line = `${prefix}${pad_plain(label, label_width)} ${meta}`;
163
- lines.push(selected
164
- ? this.theme.fg('accent', this.theme.bold(line))
165
- : line);
166
- }
167
- return lines;
168
- }
169
- render_diff(width, height) {
170
- const selected = this.selected_file();
171
- const title = selected
172
- ? `Diff: ${truncate_plain(selected.path, Math.max(0, width - 6))}`
173
- : 'Diff';
174
- const lines = [this.theme.bold(title)];
175
- if (!this.diff || this.diff.path !== this.diff_for_path) {
176
- lines.push(this.theme.fg('dim', 'Loading diff…'));
177
- return lines;
178
- }
179
- const visible = Math.max(1, height - 1);
180
- const max_scroll = Math.max(0, this.diff.lines.length - visible);
181
- this.diff_scroll = Math.min(this.diff_scroll, max_scroll);
182
- const body = this.diff.lines.slice(this.diff_scroll, this.diff_scroll + visible);
183
- for (const raw of body)
184
- lines.push(this.format_diff_line(raw, width));
185
- if (max_scroll > 0) {
186
- lines[0] = `${lines[0]} ${this.theme.fg('dim', `${this.diff_scroll + 1}-${Math.min(this.diff_scroll + visible, this.diff.lines.length)}/${this.diff.lines.length}`)}`;
187
- }
188
- return lines;
189
- }
190
- format_diff_line(raw, width) {
191
- const text = truncate_plain(raw.replace(/\t/g, ' '), width);
192
- if (raw === 'STAGED' || raw === 'UNSTAGED')
193
- return this.theme.fg('accent', this.theme.bold(text));
194
- if (raw.startsWith('+++') || raw.startsWith('---'))
195
- return this.theme.fg('muted', text);
196
- if (raw.startsWith('@@'))
197
- return this.theme.fg('accent', text);
198
- if (raw.startsWith('+'))
199
- return this.theme.fg('success', text);
200
- if (raw.startsWith('-'))
201
- return this.theme.fg('warning', text);
202
- return text;
203
- }
204
- selected_file() {
205
- return this.status.files[this.selected];
194
+ : Math.min(this.selected, Math.max(0, files.length - 1));
206
195
  }
207
196
  move_selection(delta) {
208
- const next = Math.max(0, Math.min(this.status.files.length - 1, this.selected + delta));
197
+ const files = this.visible_files();
198
+ const next = Math.max(0, Math.min(files.length - 1, this.selected + delta));
209
199
  if (next === this.selected)
210
200
  return;
211
201
  this.selected = next;
212
202
  this.diff_scroll = 0;
203
+ this.selected_hunk = 0;
204
+ this.selected_line_index = undefined;
213
205
  void this.load_diff();
214
206
  }
215
207
  scroll_diff(delta) {
216
208
  this.diff_scroll = Math.max(0, this.diff_scroll + delta);
217
209
  }
210
+ start_filter() {
211
+ this.capturing_filter = true;
212
+ this.message = this.filter_text
213
+ ? `Filter: ${this.filter_text}`
214
+ : 'Filter: type to narrow files';
215
+ }
216
+ handle_filter_input(data) {
217
+ if (data === '\r' || data === '\n' || data === '\x1B') {
218
+ this.capturing_filter = false;
219
+ this.message = this.filter_text
220
+ ? `Filtered by ${this.filter_text}`
221
+ : '';
222
+ return;
223
+ }
224
+ if (data === '\x7F' || data === '\b') {
225
+ this.filter_text = this.filter_text.slice(0, -1);
226
+ }
227
+ else if (data === '\x15') {
228
+ this.filter_text = '';
229
+ }
230
+ else if (data.length === 1 && data >= ' ') {
231
+ this.filter_text += data;
232
+ }
233
+ this.selected = 0;
234
+ this.diff_scroll = 0;
235
+ this.selected_hunk = 0;
236
+ this.selected_line_index = undefined;
237
+ this.message = this.filter_text
238
+ ? `Filter: ${this.filter_text}`
239
+ : 'Filter cleared';
240
+ void this.load_diff();
241
+ }
242
+ move_hunk(delta) {
243
+ if (!this.diff || this.diff.hunks.length === 0) {
244
+ this.message = 'No hunks in selected diff.';
245
+ return;
246
+ }
247
+ this.selected_hunk = Math.max(0, Math.min(this.diff.hunks.length - 1, this.selected_hunk + delta));
248
+ const hunk = this.selected_diff_hunk();
249
+ if (hunk) {
250
+ this.diff_scroll = hunk.line_index;
251
+ this.selected_line_index = changed_line_indexes(hunk)[0];
252
+ }
253
+ }
254
+ move_line(delta) {
255
+ const indexes = this.stageable_line_indexes();
256
+ if (indexes.length === 0) {
257
+ this.message = 'No stageable lines in selected diff.';
258
+ return;
259
+ }
260
+ const current = this.selected_line_index ?? indexes[0];
261
+ const current_index = Math.max(0, indexes.indexOf(current));
262
+ const next = indexes[Math.max(0, Math.min(indexes.length - 1, current_index + delta))];
263
+ this.selected_line_index = next;
264
+ this.diff_scroll = next;
265
+ const hunk_index = this.diff?.hunks.findIndex((hunk) => changed_line_indexes(hunk).includes(next));
266
+ if (hunk_index !== undefined && hunk_index >= 0)
267
+ this.selected_hunk = hunk_index;
268
+ }
269
+ stageable_line_indexes() {
270
+ return this.diff?.hunks.flatMap(changed_line_indexes) ?? [];
271
+ }
272
+ selected_line_hunk() {
273
+ return this.diff?.hunks.find((hunk) => this.selected_line_index === undefined
274
+ ? false
275
+ : changed_line_indexes(hunk).includes(this.selected_line_index));
276
+ }
218
277
  async load_diff() {
278
+ const request_id = ++this.diff_request_id;
219
279
  const file = this.selected_file();
220
280
  if (!file) {
221
281
  this.diff = undefined;
282
+ this.diff_for_path = '';
222
283
  return;
223
284
  }
224
285
  const path = file.path;
225
286
  this.diff_for_path = path;
226
287
  try {
227
- this.diff = await read_diff(this.cwd, file);
288
+ const diff = await read_diff(this.cwd, file);
289
+ if (request_id !== this.diff_request_id)
290
+ return;
291
+ this.diff = diff;
292
+ this.selected_hunk = Math.min(this.selected_hunk, Math.max(0, this.diff.hunks.length - 1));
293
+ this.selected_line_index ??= this.stageable_line_indexes()[0];
228
294
  }
229
295
  catch (error) {
230
- this.diff = { path, lines: [format_git_error(error)] };
296
+ if (request_id !== this.diff_request_id)
297
+ return;
298
+ this.diff = {
299
+ path,
300
+ lines: [format_git_error(error)],
301
+ hunks: [],
302
+ };
231
303
  }
232
304
  this.request_render();
233
305
  }
@@ -244,6 +316,47 @@ export class GitStageBody {
244
316
  return;
245
317
  await this.run(() => stage_file(this.cwd, file), `Staged ${file.path}`);
246
318
  }
319
+ async unstage_selected() {
320
+ const file = this.selected_file();
321
+ if (!file)
322
+ return;
323
+ await this.run(() => unstage_file(this.cwd, file), `Unstaged ${file.path}`);
324
+ }
325
+ selected_diff_hunk() {
326
+ return this.diff?.hunks[this.selected_hunk];
327
+ }
328
+ async stage_selected_hunk() {
329
+ const hunk = this.selected_diff_hunk();
330
+ if (!hunk) {
331
+ this.message = 'No hunk selected.';
332
+ return;
333
+ }
334
+ await this.run(() => stage_hunk(this.cwd, hunk), 'Staged hunk');
335
+ }
336
+ async unstage_selected_hunk() {
337
+ const hunk = this.selected_diff_hunk();
338
+ if (!hunk) {
339
+ this.message = 'No hunk selected.';
340
+ return;
341
+ }
342
+ await this.run(() => unstage_hunk(this.cwd, hunk), 'Unstaged hunk');
343
+ }
344
+ async stage_selected_line() {
345
+ const hunk = this.selected_line_hunk();
346
+ if (!hunk || this.selected_line_index === undefined) {
347
+ this.message = 'No line selected.';
348
+ return;
349
+ }
350
+ await this.run(() => stage_line(this.cwd, hunk, this.selected_line_index), 'Staged line');
351
+ }
352
+ async unstage_selected_line() {
353
+ const hunk = this.selected_line_hunk();
354
+ if (!hunk || this.selected_line_index === undefined) {
355
+ this.message = 'No line selected.';
356
+ return;
357
+ }
358
+ await this.run(() => unstage_line(this.cwd, hunk, this.selected_line_index), 'Unstaged line');
359
+ }
247
360
  async stage_all_safely() {
248
361
  const unsafe = this.status.files.find((file) => file.state === 'mixed' || file.state === 'conflicted');
249
362
  if (unsafe) {
@@ -252,25 +365,152 @@ export class GitStageBody {
252
365
  }
253
366
  await this.run(() => stage_all(this.cwd), 'Staged all changes');
254
367
  }
255
- async unstage_selected() {
368
+ open_action_menu() {
256
369
  const file = this.selected_file();
257
- if (!file)
370
+ if (!file) {
371
+ this.message = 'No file selected.';
258
372
  return;
259
- await this.run(() => unstage_file(this.cwd, file), `Unstaged ${file.path}`);
373
+ }
374
+ const actions = [
375
+ {
376
+ action_label: 'stage file',
377
+ action_description: 'Stage all worktree changes for this file',
378
+ run: () => void this.stage_selected(),
379
+ },
380
+ {
381
+ action_label: 'unstage file',
382
+ action_description: 'Remove this file from the index',
383
+ run: () => void this.unstage_selected(),
384
+ },
385
+ {
386
+ action_label: 'stage hunk',
387
+ action_description: 'Stage the selected unstaged hunk',
388
+ run: () => void this.stage_selected_hunk(),
389
+ },
390
+ {
391
+ action_label: 'unstage hunk',
392
+ action_description: 'Unstage the selected staged hunk',
393
+ run: () => void this.unstage_selected_hunk(),
394
+ },
395
+ {
396
+ action_label: 'stage line',
397
+ action_description: 'Stage the selected changed line',
398
+ run: () => void this.stage_selected_line(),
399
+ },
400
+ {
401
+ action_label: 'unstage line',
402
+ action_description: 'Unstage the selected changed line',
403
+ run: () => void this.unstage_selected_line(),
404
+ },
405
+ {
406
+ action_label: 'discard file',
407
+ action_description: 'Discard unstaged worktree changes for this file',
408
+ run: () => this.open_discard_confirmation(file),
409
+ },
410
+ {
411
+ action_label: 'commit',
412
+ action_description: 'Commit currently staged changes',
413
+ run: () => this.open_commit_composer(),
414
+ },
415
+ {
416
+ action_label: 'amend commit',
417
+ action_description: 'Amend HEAD with staged changes',
418
+ run: () => this.open_commit_composer(true),
419
+ },
420
+ {
421
+ action_label: 'repository',
422
+ action_description: 'Show branches, log, stashes, and remotes',
423
+ run: () => void this.open_repo_overview(),
424
+ },
425
+ {
426
+ action_label: 'refresh',
427
+ action_description: 'Reload git status and diff',
428
+ run: () => void this.load(file.path),
429
+ },
430
+ ];
431
+ if (file.state === 'conflicted') {
432
+ actions.unshift({
433
+ action_label: 'conflict help',
434
+ action_description: 'Show safe conflict resolution steps',
435
+ run: () => this.show_conflict_help(file),
436
+ });
437
+ }
438
+ this.actions = actions;
439
+ this.selected_action = 0;
440
+ }
441
+ handle_action_input(data) {
442
+ if (data === '\x1B' || data === 'q') {
443
+ this.actions = undefined;
444
+ return;
445
+ }
446
+ if (key_is_up(data)) {
447
+ this.selected_action = Math.max(0, this.selected_action - 1);
448
+ return;
449
+ }
450
+ if (key_is_down(data)) {
451
+ this.selected_action = Math.min((this.actions?.length ?? 1) - 1, this.selected_action + 1);
452
+ return;
453
+ }
454
+ if (data !== '\r' && data !== '\n')
455
+ return;
456
+ const action = this.actions?.[this.selected_action];
457
+ this.actions = undefined;
458
+ action?.run();
459
+ }
460
+ show_conflict_help(file) {
461
+ this.actions = undefined;
462
+ this.message = `Resolve ${file.path} in your editor, then stage it with s when conflict markers are gone.`;
260
463
  }
261
- open_commit_composer() {
464
+ async open_repo_overview() {
465
+ this.busy = true;
466
+ this.message = 'Loading repository overview…';
467
+ this.request_render();
468
+ try {
469
+ this.repo_overview = await read_repo_overview(this.cwd);
470
+ }
471
+ catch (error) {
472
+ this.message = format_git_error(error);
473
+ }
474
+ finally {
475
+ this.busy = false;
476
+ this.request_render();
477
+ }
478
+ }
479
+ open_discard_confirmation(file) {
480
+ this.actions = [
481
+ {
482
+ action_label: 'confirm discard',
483
+ action_description: 'Permanently remove unstaged worktree changes',
484
+ run: () => void this.discard_file(file),
485
+ },
486
+ {
487
+ action_label: 'cancel',
488
+ action_description: 'Keep changes',
489
+ run: () => {
490
+ this.actions = undefined;
491
+ },
492
+ },
493
+ ];
494
+ this.selected_action = 1;
495
+ }
496
+ async discard_file(file) {
497
+ await this.run(() => discard_file(this.cwd, file), `Discarded unstaged changes in ${file.path}`);
498
+ }
499
+ open_commit_composer(amend = false) {
262
500
  if (!has_staged_changes(this.status.files)) {
263
- this.message = 'No staged changes to commit.';
501
+ this.message = amend
502
+ ? 'No staged changes to amend.'
503
+ : 'No staged changes to commit.';
264
504
  return;
265
505
  }
266
- this.composer = new CommitComposer(this.theme, staged_file_count(this.status.files), (message) => void this.commit_staged(message), () => {
506
+ this.composer = new CommitComposer(this.theme, staged_file_count(this.status.files), (message) => void this.commit_staged(message, amend), () => {
267
507
  this.composer = undefined;
268
- });
508
+ }, amend);
269
509
  this.composer.focused = this.focused;
270
510
  }
271
- async commit_staged(message) {
511
+ async commit_staged(message, amend = false) {
272
512
  this.composer = undefined;
273
- await this.run(() => commit(this.cwd, message), `Committed ${message}`);
513
+ await this.run(() => commit(this.cwd, message, { amend }), amend ? `Amended ${message}` : `Committed ${message}`);
274
514
  }
275
515
  async run(action, success) {
276
516
  const path = this.selected_file()?.path;
@@ -283,6 +523,7 @@ export class GitStageBody {
283
523
  this.status = await read_status(this.cwd);
284
524
  this.restore_selection(path);
285
525
  this.diff_scroll = 0;
526
+ this.selected_line_index = undefined;
286
527
  await this.load_diff();
287
528
  }
288
529
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"stage-body.js","sourceRoot":"","sources":["../src/stage-body.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stage-body.js","sourceRoot":"","sources":["../src/stage-body.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { StageRenderState } from './stage-types.js';
2
+ export declare function render_stage(state: StageRenderState, width: number): string[];