@theia/scm 1.75.0-next.8 → 1.75.0

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.
Files changed (97) hide show
  1. package/lib/browser/decorations/scm-navigator-decorator.d.ts.map +1 -1
  2. package/lib/browser/decorations/scm-navigator-decorator.js +1 -0
  3. package/lib/browser/decorations/scm-navigator-decorator.js.map +1 -1
  4. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js +7 -10
  5. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js.map +1 -1
  6. package/lib/browser/scm-action-button-widget.js +10 -15
  7. package/lib/browser/scm-action-button-widget.js.map +1 -1
  8. package/lib/browser/scm-amend-component.js +24 -57
  9. package/lib/browser/scm-amend-component.js.map +1 -1
  10. package/lib/browser/scm-commit-widget.d.ts +1 -1
  11. package/lib/browser/scm-commit-widget.d.ts.map +1 -1
  12. package/lib/browser/scm-commit-widget.js +9 -10
  13. package/lib/browser/scm-commit-widget.js.map +1 -1
  14. package/lib/browser/scm-context-key-service.d.ts +2 -0
  15. package/lib/browser/scm-context-key-service.d.ts.map +1 -1
  16. package/lib/browser/scm-context-key-service.js +4 -0
  17. package/lib/browser/scm-context-key-service.js.map +1 -1
  18. package/lib/browser/scm-context-key-service.spec.js +7 -0
  19. package/lib/browser/scm-context-key-service.spec.js.map +1 -1
  20. package/lib/browser/scm-frontend-module.d.ts.map +1 -1
  21. package/lib/browser/scm-frontend-module.js +6 -0
  22. package/lib/browser/scm-frontend-module.js.map +1 -1
  23. package/lib/browser/scm-history-graph-contribution.d.ts +49 -0
  24. package/lib/browser/scm-history-graph-contribution.d.ts.map +1 -0
  25. package/lib/browser/scm-history-graph-contribution.js +280 -0
  26. package/lib/browser/scm-history-graph-contribution.js.map +1 -0
  27. package/lib/browser/scm-history-graph-contribution.spec.d.ts +2 -0
  28. package/lib/browser/scm-history-graph-contribution.spec.d.ts.map +1 -0
  29. package/lib/browser/scm-history-graph-contribution.spec.js +119 -0
  30. package/lib/browser/scm-history-graph-contribution.spec.js.map +1 -0
  31. package/lib/browser/scm-history-graph-helpers.d.ts +59 -6
  32. package/lib/browser/scm-history-graph-helpers.d.ts.map +1 -1
  33. package/lib/browser/scm-history-graph-helpers.js +129 -5
  34. package/lib/browser/scm-history-graph-helpers.js.map +1 -1
  35. package/lib/browser/scm-history-graph-helpers.spec.d.ts +2 -0
  36. package/lib/browser/scm-history-graph-helpers.spec.d.ts.map +1 -0
  37. package/lib/browser/scm-history-graph-helpers.spec.js +154 -0
  38. package/lib/browser/scm-history-graph-helpers.spec.js.map +1 -0
  39. package/lib/browser/scm-history-graph-lanes.d.ts +19 -5
  40. package/lib/browser/scm-history-graph-lanes.d.ts.map +1 -1
  41. package/lib/browser/scm-history-graph-lanes.js +25 -9
  42. package/lib/browser/scm-history-graph-lanes.js.map +1 -1
  43. package/lib/browser/scm-history-graph-lanes.spec.js +62 -25
  44. package/lib/browser/scm-history-graph-lanes.spec.js.map +1 -1
  45. package/lib/browser/scm-history-graph-model.d.ts +75 -6
  46. package/lib/browser/scm-history-graph-model.d.ts.map +1 -1
  47. package/lib/browser/scm-history-graph-model.js +155 -10
  48. package/lib/browser/scm-history-graph-model.js.map +1 -1
  49. package/lib/browser/scm-history-graph-model.spec.js +299 -4
  50. package/lib/browser/scm-history-graph-model.spec.js.map +1 -1
  51. package/lib/browser/scm-history-graph-tooltip.d.ts +27 -2
  52. package/lib/browser/scm-history-graph-tooltip.d.ts.map +1 -1
  53. package/lib/browser/scm-history-graph-tooltip.js +113 -22
  54. package/lib/browser/scm-history-graph-tooltip.js.map +1 -1
  55. package/lib/browser/scm-history-graph-tooltip.spec.d.ts +2 -0
  56. package/lib/browser/scm-history-graph-tooltip.spec.d.ts.map +1 -0
  57. package/lib/browser/scm-history-graph-tooltip.spec.js +213 -0
  58. package/lib/browser/scm-history-graph-tooltip.spec.js.map +1 -0
  59. package/lib/browser/scm-history-graph-widget.d.ts +36 -2
  60. package/lib/browser/scm-history-graph-widget.d.ts.map +1 -1
  61. package/lib/browser/scm-history-graph-widget.js +174 -67
  62. package/lib/browser/scm-history-graph-widget.js.map +1 -1
  63. package/lib/browser/scm-history-graph-widget.spec.d.ts +2 -0
  64. package/lib/browser/scm-history-graph-widget.spec.d.ts.map +1 -0
  65. package/lib/browser/scm-history-graph-widget.spec.js +273 -0
  66. package/lib/browser/scm-history-graph-widget.spec.js.map +1 -0
  67. package/lib/browser/scm-provider.d.ts +9 -1
  68. package/lib/browser/scm-provider.d.ts.map +1 -1
  69. package/lib/browser/scm-provider.js.map +1 -1
  70. package/lib/browser/scm-repositories-widget.js +12 -21
  71. package/lib/browser/scm-repositories-widget.js.map +1 -1
  72. package/lib/browser/scm-tree-widget.js +35 -53
  73. package/lib/browser/scm-tree-widget.js.map +1 -1
  74. package/lib/common/scm-preferences.d.ts +3 -0
  75. package/lib/common/scm-preferences.d.ts.map +1 -1
  76. package/lib/common/scm-preferences.js +24 -0
  77. package/lib/common/scm-preferences.js.map +1 -1
  78. package/package.json +7 -7
  79. package/src/browser/decorations/scm-navigator-decorator.ts +3 -2
  80. package/src/browser/scm-context-key-service.spec.ts +9 -0
  81. package/src/browser/scm-context-key-service.ts +6 -0
  82. package/src/browser/scm-frontend-module.ts +7 -1
  83. package/src/browser/scm-history-graph-contribution.spec.ts +148 -0
  84. package/src/browser/scm-history-graph-contribution.ts +273 -0
  85. package/src/browser/scm-history-graph-helpers.spec.ts +193 -0
  86. package/src/browser/scm-history-graph-helpers.ts +180 -6
  87. package/src/browser/scm-history-graph-lanes.spec.ts +70 -25
  88. package/src/browser/scm-history-graph-lanes.ts +48 -11
  89. package/src/browser/scm-history-graph-model.spec.ts +378 -12
  90. package/src/browser/scm-history-graph-model.ts +181 -13
  91. package/src/browser/scm-history-graph-tooltip.spec.ts +254 -0
  92. package/src/browser/scm-history-graph-tooltip.ts +144 -24
  93. package/src/browser/scm-history-graph-widget.spec.ts +322 -0
  94. package/src/browser/scm-history-graph-widget.tsx +199 -39
  95. package/src/browser/scm-provider.ts +9 -1
  96. package/src/browser/style/scm-history-graph.css +53 -2
  97. package/src/common/scm-preferences.ts +27 -0
@@ -33,9 +33,13 @@ describe('computeGraphRows', () => {
33
33
  it('all commits stay in lane 0', () => {
34
34
  (0, chai_1.expect)(lanes(commits)).to.deep.equal([0, 0, 0]);
35
35
  });
36
- it('colors are all 0', () => {
36
+ it('colors default to the first rotation color (foreground1 = index 3)', () => {
37
37
  const rows = (0, scm_history_graph_lanes_1.computeGraphRows)(commits);
38
- (0, chai_1.expect)(rows.map(r => r.color)).to.deep.equal([0, 0, 0]);
38
+ (0, chai_1.expect)(rows.map(r => r.color)).to.deep.equal([3, 3, 3]);
39
+ });
40
+ it('topColor equals color when no ref color overrides the lane', () => {
41
+ const rows = (0, scm_history_graph_lanes_1.computeGraphRows)(commits);
42
+ rows.forEach(r => (0, chai_1.expect)(r.topColor).to.equal(r.color));
39
43
  });
40
44
  it('first parent same-lane continuation emits no separate edge (handled by commit line)', () => {
41
45
  const rows = (0, scm_history_graph_lanes_1.computeGraphRows)(commits);
@@ -174,9 +178,13 @@ describe('computeGraphRows', () => {
174
178
  const mergeIn = rows[0].edges.filter(e => e.type === 'merge-in');
175
179
  (0, chai_1.expect)(mergeIn.length).to.equal(0);
176
180
  });
177
- it('lane colors are correct modulo 8', () => {
181
+ it('lane colors rotate through the default registry (indices 3-7)', () => {
178
182
  const rows = (0, scm_history_graph_lanes_1.computeGraphRows)(commits);
179
- rows.forEach(r => (0, chai_1.expect)(r.color).to.equal(r.lane % 8));
183
+ // O and P1 share lane 0 → first rotation color; P2/P3 opened new lanes
184
+ (0, chai_1.expect)(rows[0].color).to.equal(3);
185
+ (0, chai_1.expect)(rows[1].color).to.equal(3);
186
+ (0, chai_1.expect)(rows[2].color).to.not.equal(rows[3].color);
187
+ rows.forEach(r => (0, chai_1.expect)(r.color).to.be.within(3, 7));
180
188
  });
181
189
  });
182
190
  // -------------------------------------------------------------------------
@@ -337,25 +345,14 @@ describe('computeGraphRows', () => {
337
345
  });
338
346
  });
339
347
  // -------------------------------------------------------------------------
340
- // Lane color wraps at 8
348
+ // Default color rotation (VS Code cycles scmGraph.foreground1-5)
341
349
  // -------------------------------------------------------------------------
342
- describe('color wrapping', () => {
343
- it('lane color is always lane % 8', () => {
344
- // 4 parallel chains so we have lanes 0, 1, 2, 3 occupied at once.
345
- // Chain structure: X0→X1→X2, Y0→Y1→Y2, etc., interleaved.
346
- const commits = [
347
- { id: 'X0', parentIds: ['X1'] },
348
- { id: 'Y0', parentIds: ['Y1'] },
349
- { id: 'Z0', parentIds: ['Z1'] },
350
- { id: 'W0', parentIds: ['W1'] },
351
- { id: 'X1', parentIds: [] },
352
- { id: 'Y1', parentIds: [] },
353
- { id: 'Z1', parentIds: [] },
354
- { id: 'W1', parentIds: [] },
355
- ];
350
+ describe('default color rotation', () => {
351
+ it('cycles through indices 3-7 and wraps', () => {
352
+ // 6 independent tips 6 lanes; the sixth wraps back to the first color
353
+ const commits = ['A', 'B', 'C', 'D', 'E', 'F'].map(id => ({ id, parentIds: [id.toLowerCase()] }));
356
354
  const rows = (0, scm_history_graph_lanes_1.computeGraphRows)(commits);
357
- // Every row's color must equal lane % 8
358
- rows.forEach(r => (0, chai_1.expect)(r.color).to.equal(r.lane % 8));
355
+ (0, chai_1.expect)(rows.map(r => r.color)).to.deep.equal([3, 4, 5, 6, 7, 3]);
359
356
  });
360
357
  it('assigns distinct lanes to 8 simultaneous branches', () => {
361
358
  // 8 independent commits whose parents haven't been seen yet
@@ -372,10 +369,50 @@ describe('computeGraphRows', () => {
372
369
  const rows = (0, scm_history_graph_lanes_1.computeGraphRows)(commits);
373
370
  const laneSet = new Set(rows.map(r => r.lane));
374
371
  (0, chai_1.expect)(laneSet.size).to.equal(8); // all distinct lanes
375
- // Color of lane 7 is 7, lane 0 is 0
376
- const lane7 = rows.find(r => r.lane === 7);
377
- (0, chai_1.expect)(lane7).to.not.be.undefined;
378
- (0, chai_1.expect)(lane7.color).to.equal(7);
372
+ // Default colors never use the reserved ref color indices 0-2
373
+ rows.forEach(r => (0, chai_1.expect)(r.color).to.be.within(3, 7));
374
+ });
375
+ });
376
+ // -------------------------------------------------------------------------
377
+ // Ref-based colors (VS Code colorMap: current=0, remote=1, base=2)
378
+ // -------------------------------------------------------------------------
379
+ describe('ref-based colors', () => {
380
+ // Remote is one commit ahead: R (origin/main) → L (main = HEAD) → A
381
+ const behindCommits = [
382
+ { id: 'R', parentIds: ['L'], colorIndex: 1 },
383
+ { id: 'L', parentIds: ['A'], colorIndex: 0 },
384
+ { id: 'A', parentIds: [] },
385
+ ];
386
+ it('a tip with a color index colors its row', () => {
387
+ const rows = (0, scm_history_graph_lanes_1.computeGraphRows)(behindCommits);
388
+ (0, chai_1.expect)(rows[0].color).to.equal(1);
389
+ });
390
+ it('an overriding commit recolors the chain from its row downward', () => {
391
+ const rows = (0, scm_history_graph_lanes_1.computeGraphRows)(behindCommits);
392
+ (0, chai_1.expect)(rows[1].color).to.equal(0);
393
+ (0, chai_1.expect)(rows[2].color).to.equal(0);
394
+ });
395
+ it('topColor keeps the inherited color for the segment above an overriding commit', () => {
396
+ const rows = (0, scm_history_graph_lanes_1.computeGraphRows)(behindCommits);
397
+ (0, chai_1.expect)(rows[0].topColor).to.equal(1);
398
+ (0, chai_1.expect)(rows[1].topColor).to.equal(1);
399
+ (0, chai_1.expect)(rows[2].topColor).to.equal(0);
400
+ });
401
+ // Diverged: L (main = HEAD) and R (origin/main) both branched off A
402
+ const divergedCommits = [
403
+ { id: 'L', parentIds: ['A'], colorIndex: 0 },
404
+ { id: 'R', parentIds: ['A'], colorIndex: 1 },
405
+ { id: 'A', parentIds: [] },
406
+ ];
407
+ it('pass-through edges use the propagated ref color', () => {
408
+ const rows = (0, scm_history_graph_lanes_1.computeGraphRows)(divergedCommits);
409
+ const pass = rows[1].edges.find(e => e.type === 'pass-through');
410
+ (0, chai_1.expect)(pass?.color).to.equal(0);
411
+ });
412
+ it('merge-in edges from a ref-colored lane keep that color', () => {
413
+ const rows = (0, scm_history_graph_lanes_1.computeGraphRows)(divergedCommits);
414
+ const mergeIn = rows[2].edges.find(e => e.type === 'merge-in');
415
+ (0, chai_1.expect)(mergeIn?.color).to.equal(1);
379
416
  });
380
417
  });
381
418
  // -------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"scm-history-graph-lanes.spec.js","sourceRoot":"","sources":["../../src/browser/scm-history-graph-lanes.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scm-history-graph-lanes.spec.js","sourceRoot":"","sources":["../../src/browser/scm-history-graph-lanes.spec.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,33 @@
1
1
  import { DisposableCollection } from '@theia/core/lib/common/disposable';
2
- import { Emitter } from '@theia/core/lib/common/event';
2
+ import { Emitter, Event } from '@theia/core/lib/common/event';
3
3
  import { CancellationTokenSource } from '@theia/core/lib/common/cancellation';
4
4
  import { ScmService } from './scm-service';
5
- import { ScmHistoryItem, ScmHistoryProvider } from './scm-provider';
5
+ import { ScmHistoryItem, ScmHistoryItemRef, ScmHistoryProvider } from './scm-provider';
6
6
  import { GraphRow } from './scm-history-graph-lanes';
7
+ import { ILogger } from '@theia/core';
8
+ import { ScmPreferences } from '../common/scm-preferences';
7
9
  export declare const PAGE_SIZE = 50;
10
+ /** How the changes of an expanded history item are laid out. */
11
+ export type ScmHistoryViewMode = 'list' | 'tree';
12
+ export declare const ScmHistoryGraphModelProvider: unique symbol;
13
+ /**
14
+ * Resolves the {@link ScmHistoryGraphModel} singleton on first use. The model
15
+ * starts loading history and subscribing to provider events as soon as it is
16
+ * instantiated, so clients that may not need it (e.g. command contributions
17
+ * instantiated at application start) must inject this provider instead of the
18
+ * model itself.
19
+ */
20
+ export type ScmHistoryGraphModelProvider = () => ScmHistoryGraphModel;
8
21
  export interface HistoryGraphEntry {
9
22
  readonly item: ScmHistoryItem;
10
23
  readonly graphRow: GraphRow;
24
+ /** True when this item is the commit the current history item ref points at (HEAD). */
25
+ readonly isCurrent: boolean;
11
26
  }
12
27
  export declare class ScmHistoryGraphModel {
13
28
  protected readonly scmService: ScmService;
29
+ protected readonly scmPreferences: ScmPreferences;
30
+ protected readonly logger: ILogger;
14
31
  protected readonly toDispose: DisposableCollection;
15
32
  protected readonly toDisposeOnProviderChange: DisposableCollection;
16
33
  protected _entries: HistoryGraphEntry[];
@@ -18,12 +35,37 @@ export declare class ScmHistoryGraphModel {
18
35
  protected _loading: boolean;
19
36
  protected _hasAttemptedLoad: boolean;
20
37
  protected _provider: ScmHistoryProvider | undefined;
38
+ /** Explicitly picked ref ids to filter the graph by; `undefined` = auto (current/remote/base). */
39
+ protected _historyItemRefFilter: string[] | undefined;
40
+ protected _viewMode: ScmHistoryViewMode;
21
41
  protected readonly onDidChangeEmitter: Emitter<void>;
22
- readonly onDidChange: import("@theia/core/lib/common/event").Event<void>;
42
+ readonly onDidChange: Event<void>;
43
+ protected readonly onDidRequestRevealEmitter: Emitter<number>;
44
+ /** Fired with the index of an entry the view should scroll to and select. */
45
+ readonly onDidRequestReveal: Event<number>;
23
46
  protected cancelSource: CancellationTokenSource;
24
47
  protected init(): void;
25
48
  dispose(): void;
26
49
  get provider(): ScmHistoryProvider | undefined;
50
+ /** The explicitly picked ref ids filtering the graph, or `undefined` in auto mode. */
51
+ get historyItemRefFilter(): readonly string[] | undefined;
52
+ /** How the changes of an expanded history item are laid out. */
53
+ get viewMode(): ScmHistoryViewMode;
54
+ /**
55
+ * Switches how the changes of an expanded history item are laid out. This
56
+ * only affects rendering, so the loaded history is kept as is.
57
+ */
58
+ setViewMode(viewMode: ScmHistoryViewMode): void;
59
+ /**
60
+ * Sets the ref ids to filter the graph by (`undefined` returns to auto
61
+ * mode) and reloads the graph.
62
+ */
63
+ setHistoryItemRefFilter(refIds: readonly string[] | undefined): void;
64
+ /**
65
+ * Whether the current history item ref is part of the graph's filter.
66
+ * Always true in auto mode, which includes the current ref.
67
+ */
68
+ isCurrentRefInFilter(): boolean;
27
69
  get entries(): readonly HistoryGraphEntry[];
28
70
  get hasMore(): boolean;
29
71
  get loading(): boolean;
@@ -34,12 +76,39 @@ export declare class ScmHistoryGraphModel {
34
76
  */
35
77
  get hasAttemptedLoad(): boolean;
36
78
  refresh(): void;
79
+ /**
80
+ * Drops refs that no longer exist from the explicit filter, so that
81
+ * deleting or renaming a filtered ref does not leave the graph stuck
82
+ * requesting history for it. When the last filtered ref is removed,
83
+ * the filter falls back to auto mode.
84
+ */
85
+ protected pruneHistoryItemRefFilter(removed: readonly ScmHistoryItemRef[]): void;
86
+ /** Clears the loaded entries and loads the first page again from the current provider. */
87
+ protected reload(): void;
88
+ /**
89
+ * Locates the commit the current history item ref points at, loading
90
+ * further pages while it is outside the loaded range, and asks the view to
91
+ * reveal it. Returns its index, or `undefined` when there is no current
92
+ * history item ref or the commit is not part of the graph (e.g. the ref is
93
+ * excluded by the filter).
94
+ */
95
+ revealCurrentHistoryItem(): Promise<number | undefined>;
96
+ protected indexOfCurrentHistoryItem(): number | undefined;
37
97
  loadMore(): Promise<void>;
38
98
  protected loadPage(): Promise<void>;
99
+ /** The configured page size (`scm.graph.pageSize`). */
100
+ protected get pageSize(): number;
101
+ /**
102
+ * Resolves the ref-based color index of an item from its references,
103
+ * preferring current (0) over remote (1) over base (2). Refs excluded by
104
+ * an explicit filter get no role color, mirroring VS Code's color map.
105
+ */
106
+ protected resolveColorIndex(item: ScmHistoryItem): number | undefined;
39
107
  /**
40
- * Returns the revisions of the current branch ref, its remote tracking ref,
41
- * and the merge-base ref to pass to `provideHistoryItems`. Providers walk
42
- * history starting from these revisions.
108
+ * Returns the refs to pass to `provideHistoryItems`: the explicitly picked
109
+ * ref ids when a filter is active, otherwise (auto mode) the revisions of
110
+ * the current branch ref, its remote tracking ref, and the merge-base ref.
111
+ * Providers walk history starting from these refs.
43
112
  */
44
113
  protected getCurrentHistoryItemRefs(): string[];
45
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scm-history-graph-model.d.ts","sourceRoot":"","sources":["../../src/browser/scm-history-graph-model.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAc,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAqB,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAoB,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC/B;AAED,qBACa,oBAAoB;IAET,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAE9D,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAC1D,SAAS,CAAC,QAAQ,CAAC,yBAAyB,uBAA8B;IAE1E,SAAS,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAM;IAC7C,SAAS,CAAC,QAAQ,UAAS;IAC3B,SAAS,CAAC,QAAQ,UAAS;IAC3B,SAAS,CAAC,iBAAiB,UAAS;IACpC,SAAS,CAAC,SAAS,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAEpD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,qDAAiC;IAErD,SAAS,CAAC,YAAY,0BAAiC;IAGvD,SAAS,CAAC,IAAI,IAAI,IAAI;IAStB,OAAO,IAAI,IAAI;IAKf,IAAI,QAAQ,IAAI,kBAAkB,GAAG,SAAS,CAE7C;IAED,IAAI,OAAO,IAAI,SAAS,iBAAiB,EAAE,CAE1C;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;OAIG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,OAAO,IAAI,IAAI;IA+BT,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAOf,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAyDzC;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,IAAI,MAAM,EAAE;CAgBlD"}
1
+ {"version":3,"file":"scm-history-graph-model.d.ts","sourceRoot":"","sources":["../../src/browser/scm-history-graph-model.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.ScmHistoryGraphModel = exports.PAGE_SIZE = void 0;
18
+ exports.ScmHistoryGraphModel = exports.ScmHistoryGraphModelProvider = exports.PAGE_SIZE = void 0;
19
19
  const tslib_1 = require("tslib");
20
20
  const inversify_1 = require("@theia/core/shared/inversify");
21
21
  const disposable_1 = require("@theia/core/lib/common/disposable");
@@ -23,7 +23,11 @@ const event_1 = require("@theia/core/lib/common/event");
23
23
  const cancellation_1 = require("@theia/core/lib/common/cancellation");
24
24
  const scm_service_1 = require("./scm-service");
25
25
  const scm_history_graph_lanes_1 = require("./scm-history-graph-lanes");
26
+ const core_1 = require("@theia/core");
27
+ const scm_history_graph_helpers_1 = require("./scm-history-graph-helpers");
28
+ const scm_preferences_1 = require("../common/scm-preferences");
26
29
  exports.PAGE_SIZE = 50;
30
+ exports.ScmHistoryGraphModelProvider = Symbol('ScmHistoryGraphModelProvider');
27
31
  let ScmHistoryGraphModel = class ScmHistoryGraphModel {
28
32
  constructor() {
29
33
  this.toDispose = new disposable_1.DisposableCollection();
@@ -32,15 +36,25 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
32
36
  this._hasMore = false;
33
37
  this._loading = false;
34
38
  this._hasAttemptedLoad = false;
39
+ this._viewMode = 'list';
35
40
  this.onDidChangeEmitter = new event_1.Emitter();
36
41
  this.onDidChange = this.onDidChangeEmitter.event;
42
+ this.onDidRequestRevealEmitter = new event_1.Emitter();
43
+ /** Fired with the index of an entry the view should scroll to and select. */
44
+ this.onDidRequestReveal = this.onDidRequestRevealEmitter.event;
37
45
  this.cancelSource = new cancellation_1.CancellationTokenSource();
38
46
  }
39
47
  init() {
40
48
  this.toDispose.pushAll([
41
49
  disposable_1.Disposable.create(() => this.toDisposeOnProviderChange.dispose()),
42
50
  this.onDidChangeEmitter,
51
+ this.onDidRequestRevealEmitter,
43
52
  this.scmService.onDidChangeSelectedRepository(() => this.refresh()),
53
+ this.scmPreferences.onPreferenceChanged(e => {
54
+ if (e.preferenceName === 'scm.graph.pageSize') {
55
+ this.reload();
56
+ }
57
+ }),
44
58
  ]);
45
59
  this.refresh();
46
60
  }
@@ -51,6 +65,44 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
51
65
  get provider() {
52
66
  return this._provider;
53
67
  }
68
+ /** The explicitly picked ref ids filtering the graph, or `undefined` in auto mode. */
69
+ get historyItemRefFilter() {
70
+ return this._historyItemRefFilter;
71
+ }
72
+ /** How the changes of an expanded history item are laid out. */
73
+ get viewMode() {
74
+ return this._viewMode;
75
+ }
76
+ /**
77
+ * Switches how the changes of an expanded history item are laid out. This
78
+ * only affects rendering, so the loaded history is kept as is.
79
+ */
80
+ setViewMode(viewMode) {
81
+ if (this._viewMode === viewMode) {
82
+ return;
83
+ }
84
+ this._viewMode = viewMode;
85
+ this.onDidChangeEmitter.fire();
86
+ }
87
+ /**
88
+ * Sets the ref ids to filter the graph by (`undefined` returns to auto
89
+ * mode) and reloads the graph.
90
+ */
91
+ setHistoryItemRefFilter(refIds) {
92
+ this._historyItemRefFilter = refIds && refIds.length > 0 ? [...refIds] : undefined;
93
+ this.reload();
94
+ }
95
+ /**
96
+ * Whether the current history item ref is part of the graph's filter.
97
+ * Always true in auto mode, which includes the current ref.
98
+ */
99
+ isCurrentRefInFilter() {
100
+ if (!this._historyItemRefFilter) {
101
+ return true;
102
+ }
103
+ const currentId = this._provider?.currentHistoryItemRef?.id;
104
+ return currentId !== undefined && this._historyItemRefFilter.includes(currentId);
105
+ }
54
106
  get entries() {
55
107
  return this._entries;
56
108
  }
@@ -69,25 +121,79 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
69
121
  return this._hasAttemptedLoad;
70
122
  }
71
123
  refresh() {
72
- this.cancelSource.cancel();
73
- this.cancelSource = new cancellation_1.CancellationTokenSource();
74
124
  this.toDisposeOnProviderChange.dispose();
75
125
  const repo = this.scmService.selectedRepository;
76
126
  const hp = repo?.provider.historyProvider;
127
+ if (hp !== this._provider) {
128
+ // The repository changed — a filter picked for the old provider does not apply.
129
+ this._historyItemRefFilter = undefined;
130
+ }
77
131
  this._provider = hp;
78
132
  if (this._provider) {
79
133
  this.toDisposeOnProviderChange.push(this._provider.onDidChangeCurrentHistoryItemRefs(() => this.refresh()));
80
- this.toDisposeOnProviderChange.push(this._provider.onDidChangeHistoryItemRefs(() => this.refresh()));
134
+ this.toDisposeOnProviderChange.push(this._provider.onDidChangeHistoryItemRefs(e => {
135
+ this.pruneHistoryItemRefFilter(e.removed);
136
+ this.refresh();
137
+ }));
81
138
  }
82
139
  else if (repo) {
83
140
  // historyProvider is not yet available; listen for provider changes
84
141
  // so that refresh() is retried when historyProvider becomes available.
85
142
  this.toDisposeOnProviderChange.push(repo.provider.onDidChange(() => this.refresh()));
86
143
  }
144
+ this.reload();
145
+ }
146
+ /**
147
+ * Drops refs that no longer exist from the explicit filter, so that
148
+ * deleting or renaming a filtered ref does not leave the graph stuck
149
+ * requesting history for it. When the last filtered ref is removed,
150
+ * the filter falls back to auto mode.
151
+ */
152
+ pruneHistoryItemRefFilter(removed) {
153
+ if (!this._historyItemRefFilter || removed.length === 0) {
154
+ return;
155
+ }
156
+ const removedIds = new Set(removed.map(ref => ref.id));
157
+ const remaining = this._historyItemRefFilter.filter(id => !removedIds.has(id));
158
+ if (remaining.length !== this._historyItemRefFilter.length) {
159
+ this._historyItemRefFilter = remaining.length > 0 ? remaining : undefined;
160
+ }
161
+ }
162
+ /** Clears the loaded entries and loads the first page again from the current provider. */
163
+ reload() {
164
+ this.cancelSource.cancel();
165
+ this.cancelSource = new cancellation_1.CancellationTokenSource();
87
166
  this._entries = [];
88
167
  this._hasMore = false;
89
168
  this.loadPage();
90
169
  }
170
+ /**
171
+ * Locates the commit the current history item ref points at, loading
172
+ * further pages while it is outside the loaded range, and asks the view to
173
+ * reveal it. Returns its index, or `undefined` when there is no current
174
+ * history item ref or the commit is not part of the graph (e.g. the ref is
175
+ * excluded by the filter).
176
+ */
177
+ async revealCurrentHistoryItem() {
178
+ let index = this.indexOfCurrentHistoryItem();
179
+ while (index === undefined && this._hasMore) {
180
+ const loadedBefore = this._entries.length;
181
+ await this.loadMore();
182
+ if (this._entries.length === loadedBefore) {
183
+ // The page added nothing new; paging further cannot find the item.
184
+ break;
185
+ }
186
+ index = this.indexOfCurrentHistoryItem();
187
+ }
188
+ if (index !== undefined) {
189
+ this.onDidRequestRevealEmitter.fire(index);
190
+ }
191
+ return index;
192
+ }
193
+ indexOfCurrentHistoryItem() {
194
+ const index = this._entries.findIndex(entry => entry.isCurrent);
195
+ return index === -1 ? undefined : index;
196
+ }
91
197
  async loadMore() {
92
198
  if (this._loading || !this._hasMore) {
93
199
  return;
@@ -107,10 +213,11 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
107
213
  this.onDidChangeEmitter.fire();
108
214
  const token = this.cancelSource.token;
109
215
  try {
216
+ const pageSize = this.pageSize;
110
217
  const historyItemRefs = this.getCurrentHistoryItemRefs();
111
218
  const options = {
112
219
  skip: this._entries.length,
113
- limit: exports.PAGE_SIZE,
220
+ limit: pageSize,
114
221
  historyItemRefs: historyItemRefs.length > 0 ? historyItemRefs : undefined,
115
222
  };
116
223
  const items = await this._provider.provideHistoryItems(options, token);
@@ -118,7 +225,7 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
118
225
  return;
119
226
  }
120
227
  const fetchedItems = items ?? [];
121
- this._hasMore = fetchedItems.length >= exports.PAGE_SIZE;
228
+ this._hasMore = fetchedItems.length >= pageSize;
122
229
  // Filter out any items already loaded so the graph does not show duplicates.
123
230
  const existingIds = new Set(this._entries.map(e => e.item.id));
124
231
  const newItems = fetchedItems.filter(i => !existingIds.has(i.id));
@@ -126,15 +233,18 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
126
233
  const graphRows = (0, scm_history_graph_lanes_1.computeGraphRows)(allItems.map(i => ({
127
234
  id: i.id,
128
235
  parentIds: i.parentIds,
236
+ colorIndex: this.resolveColorIndex(i),
129
237
  })));
238
+ const currentRevision = this._provider.currentHistoryItemRef?.revision;
130
239
  this._entries = allItems.map((item, idx) => ({
131
240
  item,
132
241
  graphRow: graphRows[idx],
242
+ isCurrent: currentRevision !== undefined && item.id === currentRevision,
133
243
  }));
134
244
  }
135
245
  catch (err) {
136
246
  if (!token.isCancellationRequested) {
137
- console.error('ScmHistoryGraphModel: failed to load history', err);
247
+ this.logger.error('Failed to load history', err);
138
248
  }
139
249
  }
140
250
  finally {
@@ -145,12 +255,38 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
145
255
  }
146
256
  }
147
257
  }
258
+ /** The configured page size (`scm.graph.pageSize`). */
259
+ get pageSize() {
260
+ return this.scmPreferences['scm.graph.pageSize'] ?? exports.PAGE_SIZE;
261
+ }
148
262
  /**
149
- * Returns the revisions of the current branch ref, its remote tracking ref,
150
- * and the merge-base ref to pass to `provideHistoryItems`. Providers walk
151
- * history starting from these revisions.
263
+ * Resolves the ref-based color index of an item from its references,
264
+ * preferring current (0) over remote (1) over base (2). Refs excluded by
265
+ * an explicit filter get no role color, mirroring VS Code's color map.
266
+ */
267
+ resolveColorIndex(item) {
268
+ let result;
269
+ for (const ref of item.references ?? []) {
270
+ if (this._historyItemRefFilter && !this._historyItemRefFilter.includes(ref.id)) {
271
+ continue;
272
+ }
273
+ const index = (0, scm_history_graph_helpers_1.getRefColorIndex)(ref, this._provider);
274
+ if (index !== undefined && (result === undefined || index < result)) {
275
+ result = index;
276
+ }
277
+ }
278
+ return result;
279
+ }
280
+ /**
281
+ * Returns the refs to pass to `provideHistoryItems`: the explicitly picked
282
+ * ref ids when a filter is active, otherwise (auto mode) the revisions of
283
+ * the current branch ref, its remote tracking ref, and the merge-base ref.
284
+ * Providers walk history starting from these refs.
152
285
  */
153
286
  getCurrentHistoryItemRefs() {
287
+ if (this._historyItemRefFilter) {
288
+ return [...this._historyItemRefFilter];
289
+ }
154
290
  if (!this._provider) {
155
291
  return [];
156
292
  }
@@ -172,6 +308,15 @@ tslib_1.__decorate([
172
308
  (0, inversify_1.inject)(scm_service_1.ScmService),
173
309
  tslib_1.__metadata("design:type", scm_service_1.ScmService)
174
310
  ], ScmHistoryGraphModel.prototype, "scmService", void 0);
311
+ tslib_1.__decorate([
312
+ (0, inversify_1.inject)(scm_preferences_1.ScmPreferences),
313
+ tslib_1.__metadata("design:type", Object)
314
+ ], ScmHistoryGraphModel.prototype, "scmPreferences", void 0);
315
+ tslib_1.__decorate([
316
+ (0, inversify_1.inject)(core_1.ILogger),
317
+ (0, inversify_1.named)('scm:ScmHistoryGraphModel'),
318
+ tslib_1.__metadata("design:type", Object)
319
+ ], ScmHistoryGraphModel.prototype, "logger", void 0);
175
320
  tslib_1.__decorate([
176
321
  (0, inversify_1.postConstruct)(),
177
322
  tslib_1.__metadata("design:type", Function),