@theia/scm 1.75.0-next.35 → 1.75.0-next.39

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 (34) hide show
  1. package/lib/browser/scm-history-graph-contribution.d.ts +5 -0
  2. package/lib/browser/scm-history-graph-contribution.d.ts.map +1 -1
  3. package/lib/browser/scm-history-graph-contribution.js +54 -0
  4. package/lib/browser/scm-history-graph-contribution.js.map +1 -1
  5. package/lib/browser/scm-history-graph-contribution.spec.js +58 -5
  6. package/lib/browser/scm-history-graph-contribution.spec.js.map +1 -1
  7. package/lib/browser/scm-history-graph-helpers.d.ts +25 -0
  8. package/lib/browser/scm-history-graph-helpers.d.ts.map +1 -1
  9. package/lib/browser/scm-history-graph-helpers.js +58 -0
  10. package/lib/browser/scm-history-graph-helpers.js.map +1 -1
  11. package/lib/browser/scm-history-graph-helpers.spec.js +58 -0
  12. package/lib/browser/scm-history-graph-helpers.spec.js.map +1 -1
  13. package/lib/browser/scm-history-graph-model.d.ts +24 -2
  14. package/lib/browser/scm-history-graph-model.d.ts.map +1 -1
  15. package/lib/browser/scm-history-graph-model.js +47 -0
  16. package/lib/browser/scm-history-graph-model.js.map +1 -1
  17. package/lib/browser/scm-history-graph-model.spec.js +102 -0
  18. package/lib/browser/scm-history-graph-model.spec.js.map +1 -1
  19. package/lib/browser/scm-history-graph-widget.d.ts +13 -1
  20. package/lib/browser/scm-history-graph-widget.d.ts.map +1 -1
  21. package/lib/browser/scm-history-graph-widget.js +62 -4
  22. package/lib/browser/scm-history-graph-widget.js.map +1 -1
  23. package/lib/browser/scm-history-graph-widget.spec.js +162 -0
  24. package/lib/browser/scm-history-graph-widget.spec.js.map +1 -1
  25. package/package.json +6 -6
  26. package/src/browser/scm-history-graph-contribution.spec.ts +71 -6
  27. package/src/browser/scm-history-graph-contribution.ts +51 -0
  28. package/src/browser/scm-history-graph-helpers.spec.ts +77 -2
  29. package/src/browser/scm-history-graph-helpers.ts +99 -0
  30. package/src/browser/scm-history-graph-model.spec.ts +131 -0
  31. package/src/browser/scm-history-graph-model.ts +56 -1
  32. package/src/browser/scm-history-graph-widget.spec.ts +199 -1
  33. package/src/browser/scm-history-graph-widget.tsx +96 -5
  34. package/src/browser/style/scm-history-graph.css +10 -0
@@ -36,14 +36,19 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
36
36
  this._hasMore = false;
37
37
  this._loading = false;
38
38
  this._hasAttemptedLoad = false;
39
+ this._viewMode = 'list';
39
40
  this.onDidChangeEmitter = new event_1.Emitter();
40
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;
41
45
  this.cancelSource = new cancellation_1.CancellationTokenSource();
42
46
  }
43
47
  init() {
44
48
  this.toDispose.pushAll([
45
49
  disposable_1.Disposable.create(() => this.toDisposeOnProviderChange.dispose()),
46
50
  this.onDidChangeEmitter,
51
+ this.onDidRequestRevealEmitter,
47
52
  this.scmService.onDidChangeSelectedRepository(() => this.refresh()),
48
53
  this.scmPreferences.onPreferenceChanged(e => {
49
54
  if (e.preferenceName === 'scm.graph.pageSize') {
@@ -64,6 +69,21 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
64
69
  get historyItemRefFilter() {
65
70
  return this._historyItemRefFilter;
66
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
+ }
67
87
  /**
68
88
  * Sets the ref ids to filter the graph by (`undefined` returns to auto
69
89
  * mode) and reloads the graph.
@@ -147,6 +167,33 @@ let ScmHistoryGraphModel = class ScmHistoryGraphModel {
147
167
  this._hasMore = false;
148
168
  this.loadPage();
149
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
+ }
150
197
  async loadMore() {
151
198
  if (this._loading || !this._hasMore) {
152
199
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"scm-history-graph-model.js","sourceRoot":"","sources":["../../src/browser/scm-history-graph-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scm-history-graph-model.js","sourceRoot":"","sources":["../../src/browser/scm-history-graph-model.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAAwF;AACxF,kEAAqF;AACrF,wDAA8D;AAC9D,sEAA8E;AAC9E,+CAA2C;AAE3C,uEAAuE;AACvE,sCAAsC;AACtC,2EAA+D;AAC/D,+DAA2D;AAE9C,QAAA,SAAS,GAAG,EAAE,CAAC;AAKf,QAAA,4BAA4B,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAkB5E,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QAQgB,cAAS,GAAG,IAAI,iCAAoB,EAAE,CAAC;QACvC,8BAAyB,GAAG,IAAI,iCAAoB,EAAE,CAAC;QAEhE,aAAQ,GAAwB,EAAE,CAAC;QACnC,aAAQ,GAAG,KAAK,CAAC;QACjB,aAAQ,GAAG,KAAK,CAAC;QACjB,sBAAiB,GAAG,KAAK,CAAC;QAI1B,cAAS,GAAuB,MAAM,CAAC;QAE9B,uBAAkB,GAAG,IAAI,eAAO,EAAQ,CAAC;QACnD,gBAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;QAElC,8BAAyB,GAAG,IAAI,eAAO,EAAU,CAAC;QACrE,6EAA6E;QACpE,uBAAkB,GAAkB,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;QAExE,iBAAY,GAAG,IAAI,sCAAuB,EAAE,CAAC;IAyS3D,CAAC;IAtSa,IAAI;QACV,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACnB,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,CAAC;YACjE,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,yBAAyB;YAC9B,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACnE,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE;gBACxC,IAAI,CAAC,CAAC,cAAc,KAAK,oBAAoB,EAAE,CAAC;oBAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBAClB,CAAC;YACL,CAAC,CAAC;SACL,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,OAAO;QACH,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,sFAAsF;IACtF,IAAI,oBAAoB;QACpB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IAED,gEAAgE;IAChE,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,QAA4B;QACpC,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,MAAqC;QACzD,IAAI,CAAC,qBAAqB,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,oBAAoB;QAChB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,qBAAqB,EAAE,EAAE,CAAC;QAC5D,OAAO,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED,OAAO;QACH,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,CAAC;QAEzC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAChD,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC;QAC1C,IAAI,EAAE,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACxB,gFAAgF;YAChF,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAC/B,IAAI,CAAC,SAAS,CAAC,iCAAiC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CACzE,CAAC;YACF,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAC/B,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE;gBAC1C,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC,CAAC,CACL,CAAC;QACN,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YACd,oEAAoE;YACpE,uEAAuE;YACvE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAC/B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAClD,CAAC;QACN,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACO,yBAAyB,CAAC,OAAqC;QACrE,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO;QACX,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;YACzD,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,CAAC;IACL,CAAC;IAED,0FAA0F;IAChF,MAAM;QACZ,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,sCAAuB,EAAE,CAAC;QAElD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,wBAAwB;QAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC7C,OAAO,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC1C,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACxC,mEAAmE;gBACnE,MAAM;YACV,CAAC;YACD,KAAK,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC7C,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,yBAAyB;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,OAAO;QACX,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAES,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YAC/B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAE/B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACzD,MAAM,OAAO,GAAsB;gBAC/B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAC1B,KAAK,EAAE,QAAQ;gBACf,eAAe,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;aAC5E,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAEvE,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;gBAChC,OAAO;YACX,CAAC;YAED,MAAM,YAAY,GAAqB,KAAK,IAAI,EAAE,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,IAAI,QAAQ,CAAC;YAEhD,6EAA6E;YAC7E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAElE,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;YAClE,MAAM,SAAS,GAAG,IAAA,0CAAgB,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClD,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;aACxC,CAAC,CAAC,CAAC,CAAC;YAEL,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,QAAQ,CAAC;YACvE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBACzC,IAAI;gBACJ,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC;gBACxB,SAAS,EAAE,eAAe,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,KAAK,eAAe;aAC1E,CAAC,CAAC,CAAC;QACR,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC;gBACjC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC;QACL,CAAC;IACL,CAAC;IAED,uDAAuD;IACvD,IAAc,QAAQ;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,iBAAS,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACO,iBAAiB,CAAC,IAAoB;QAC5C,IAAI,MAA0B,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7E,SAAS;YACb,CAAC;YACD,MAAM,KAAK,GAAG,IAAA,4CAAgB,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;gBAClE,MAAM,GAAG,KAAK,CAAC;YACnB,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACO,yBAAyB;QAC/B,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,2BAA2B,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;QACpH,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,yBAAyB,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAChH,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AApUY,oDAAoB;AAEU;IAAtC,IAAA,kBAAM,EAAC,wBAAU,CAAC;sCAAgC,wBAAU;wDAAC;AACnB;IAA1C,IAAA,kBAAM,EAAC,gCAAc,CAAC;;4DAAmD;AAGvD;IADlB,IAAA,kBAAM,EAAC,cAAO,CAAC;IAAE,IAAA,iBAAK,EAAC,0BAA0B,CAAC;;oDAChB;AAwBzB;IADT,IAAA,yBAAa,GAAE;;;;gDAcf;+BA3CQ,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CAoUhC"}
@@ -321,4 +321,106 @@ describe('ScmHistoryGraphModel - ref colors and current item', () => {
321
321
  (0, chai_1.expect)(model.entries.every(e => !e.isCurrent)).to.be.true;
322
322
  });
323
323
  });
324
+ describe('ScmHistoryGraphModel - view mode', () => {
325
+ it('shows the changes of a history item as a list by default', () => {
326
+ const { model } = createModel(new StubHistoryProvider());
327
+ (0, chai_1.expect)(model.viewMode).to.equal('list');
328
+ });
329
+ it('switches the view mode', () => {
330
+ const { model } = createModel(new StubHistoryProvider());
331
+ model.setViewMode('tree');
332
+ (0, chai_1.expect)(model.viewMode).to.equal('tree');
333
+ });
334
+ it('notifies listeners when the view mode changes', () => {
335
+ const { model } = createModel(new StubHistoryProvider());
336
+ let changes = 0;
337
+ model.onDidChange(() => changes++);
338
+ model.setViewMode('tree');
339
+ (0, chai_1.expect)(changes).to.equal(1);
340
+ });
341
+ it('does not notify listeners when the view mode is unchanged', () => {
342
+ const { model } = createModel(new StubHistoryProvider());
343
+ model.setViewMode('tree');
344
+ let changes = 0;
345
+ model.onDidChange(() => changes++);
346
+ model.setViewMode('tree');
347
+ (0, chai_1.expect)(changes).to.equal(0);
348
+ });
349
+ it('does not reload history when the view mode changes', async () => {
350
+ const provider = new StubHistoryProvider();
351
+ provider.pages = [makeItems(1, 10)];
352
+ const { model, loadPage } = createModel(provider);
353
+ await loadPage();
354
+ const requestsBefore = provider.receivedOptions.length;
355
+ model.setViewMode('tree');
356
+ await nextTick();
357
+ (0, chai_1.expect)(provider.receivedOptions).to.have.length(requestsBefore);
358
+ });
359
+ });
360
+ describe('ScmHistoryGraphModel - revealing the current history item', () => {
361
+ function createProviderAt(revision) {
362
+ const provider = new StubHistoryProvider();
363
+ provider.currentHistoryItemRef = { id: 'refs/heads/main', name: 'main', revision };
364
+ return provider;
365
+ }
366
+ it('requests a reveal of the index of the current history item', async () => {
367
+ const provider = createProviderAt('c3');
368
+ provider.pages = [makeItems(1, 10)];
369
+ const { model, loadPage } = createModel(provider);
370
+ await loadPage();
371
+ const revealed = [];
372
+ model.onDidRequestReveal(revealedIndex => revealed.push(revealedIndex));
373
+ const index = await model.revealCurrentHistoryItem();
374
+ (0, chai_1.expect)(index).to.equal(2);
375
+ (0, chai_1.expect)(revealed).to.deep.equal([2]);
376
+ });
377
+ it('loads further pages until the current history item is found', async () => {
378
+ const provider = createProviderAt('c55');
379
+ provider.pages = [makeItems(1, scm_history_graph_model_1.PAGE_SIZE), makeItems(scm_history_graph_model_1.PAGE_SIZE + 1, scm_history_graph_model_1.PAGE_SIZE)];
380
+ const { model, loadPage } = createModel(provider);
381
+ await loadPage();
382
+ (0, chai_1.expect)(model.entries).to.have.length(scm_history_graph_model_1.PAGE_SIZE);
383
+ const index = await model.revealCurrentHistoryItem();
384
+ (0, chai_1.expect)(index).to.equal(54);
385
+ (0, chai_1.expect)(model.entries).to.have.length(2 * scm_history_graph_model_1.PAGE_SIZE);
386
+ });
387
+ it('does not request a reveal when the current history item is not in the history', async () => {
388
+ const provider = createProviderAt('not-loaded');
389
+ provider.pages = [makeItems(1, 10)];
390
+ const { model, loadPage } = createModel(provider);
391
+ await loadPage();
392
+ const revealed = [];
393
+ model.onDidRequestReveal(revealedIndex => revealed.push(revealedIndex));
394
+ const index = await model.revealCurrentHistoryItem();
395
+ (0, chai_1.expect)(index).to.be.undefined;
396
+ (0, chai_1.expect)(revealed).to.be.empty;
397
+ });
398
+ it('does not request a reveal when the provider has no current history item ref', async () => {
399
+ const provider = new StubHistoryProvider();
400
+ provider.pages = [makeItems(1, 10)];
401
+ const { model, loadPage } = createModel(provider);
402
+ await loadPage();
403
+ const revealed = [];
404
+ model.onDidRequestReveal(revealedIndex => revealed.push(revealedIndex));
405
+ const index = await model.revealCurrentHistoryItem();
406
+ (0, chai_1.expect)(index).to.be.undefined;
407
+ (0, chai_1.expect)(revealed).to.be.empty;
408
+ });
409
+ it('stops paging when further pages add no new items', async () => {
410
+ const provider = createProviderAt('never-returned');
411
+ const page = makeItems(1, scm_history_graph_model_1.PAGE_SIZE);
412
+ // A provider that keeps returning the same full page: `hasMore` stays true
413
+ // forever, so only a no-progress guard can end the search.
414
+ provider.provideHistoryItems = async (options) => {
415
+ provider.receivedOptions.push(options);
416
+ return page;
417
+ };
418
+ const { model, loadPage } = createModel(provider);
419
+ await loadPage();
420
+ (0, chai_1.expect)(model.hasMore).to.be.true;
421
+ const index = await model.revealCurrentHistoryItem();
422
+ (0, chai_1.expect)(index).to.be.undefined;
423
+ (0, chai_1.expect)(model.entries).to.have.length(scm_history_graph_model_1.PAGE_SIZE);
424
+ });
425
+ });
324
426
  //# sourceMappingURL=scm-history-graph-model.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scm-history-graph-model.spec.js","sourceRoot":"","sources":["../../src/browser/scm-history-graph-model.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scm-history-graph-model.spec.js","sourceRoot":"","sources":["../../src/browser/scm-history-graph-model.spec.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import * as React from '@theia/core/shared/react';
2
+ import { VirtuosoHandle } from '@theia/core/shared/react-virtuoso';
2
3
  import { ReactWidget } from '@theia/core/lib/browser/widgets/react-widget';
3
4
  import { LabelProvider } from '@theia/core/lib/browser/label-provider';
4
5
  import { HoverService } from '@theia/core/lib/browser/hover-service';
@@ -17,6 +18,7 @@ import { ContextMenuRenderer } from '@theia/core/lib/browser/context-menu-render
17
18
  import { OpenerService } from '@theia/core/lib/browser/opener-service';
18
19
  import { ScmContextKeyService } from './scm-context-key-service';
19
20
  import { ScmPreferences } from '../common/scm-preferences';
21
+ import { ChangeTreeFolderRow } from './scm-history-graph-helpers';
20
22
  import { ILogger } from '@theia/core';
21
23
  /** Menu path matching the VS Code 'scm/history/title' contribution point (graph section toolbar). */
22
24
  export declare const SCM_HISTORY_TITLE_MENU: MenuPath;
@@ -39,12 +41,16 @@ export declare class ScmHistoryGraphWidget extends ReactWidget implements Dynami
39
41
  protected readonly scmPreferences: ScmPreferences;
40
42
  protected readonly logger: ILogger;
41
43
  protected selectedIndex: number;
44
+ /** Handle on the virtualized list, used to scroll an entry into view. */
45
+ protected readonly listRef: React.RefObject<VirtuosoHandle>;
42
46
  /** Currently selected change row key (`${itemId}-${ci}`), or undefined. */
43
47
  protected selectedChangeKey: string | undefined;
44
48
  /** Map from commit id → loaded changes (undefined = not loaded yet). */
45
49
  protected expandedChanges: Map<string, ScmHistoryItemChange[] | "loading">;
46
50
  /** Set of commit ids that are currently expanded. */
47
51
  protected expandedIds: Set<string>;
52
+ /** Map from commit id → folder paths collapsed in its change tree. */
53
+ protected collapsedFolders: Map<string, Set<string>>;
48
54
  /** Map from commit id → in-flight CancellationTokenSource for loadChanges. */
49
55
  protected loadChangesCts: Map<string, CancellationTokenSource>;
50
56
  /** Cleanup for the content of the hover currently being shown. */
@@ -54,6 +60,8 @@ export declare class ScmHistoryGraphWidget extends ReactWidget implements Dynami
54
60
  readonly onDidChangeToolbarItems: Event<void>;
55
61
  constructor();
56
62
  protected init(): void;
63
+ /** Scrolls the entry at `index` into view and selects it. */
64
+ protected revealIndex(index: number): void;
57
65
  protected updateContextKeys(): void;
58
66
  protected render(): React.ReactNode;
59
67
  protected handleEndReached: () => void;
@@ -70,7 +78,11 @@ export declare class ScmHistoryGraphWidget extends ReactWidget implements Dynami
70
78
  /** Selects the commit and expands its changes, closing the hover first. */
71
79
  protected openCommitFromTooltip(entry: HistoryGraphEntry): void;
72
80
  protected renderChangesRows(itemId: string, svgWidth: number, graphRow: GraphRow, changes: ScmHistoryItemChange[] | 'loading' | undefined): React.ReactElement;
73
- protected renderChangeRow(change: ScmHistoryItemChange, ci: number, itemId: string, svgWidth: number, graphRow: GraphRow): React.ReactElement;
81
+ protected renderChangeFolderRow(row: ChangeTreeFolderRow, itemId: string, svgWidth: number, graphRow: GraphRow): React.ReactElement;
82
+ protected isFolderCollapsed(itemId: string, path: string): boolean;
83
+ protected toggleFolder(itemId: string, path: string): void;
84
+ protected handleFolderClick: (e: React.MouseEvent, itemId: string, path: string) => void;
85
+ protected renderChangeRow(change: ScmHistoryItemChange, ci: number, itemId: string, svgWidth: number, graphRow: GraphRow, depth?: number): React.ReactElement;
74
86
  protected handleChangeClick: (e: React.MouseEvent, change: ScmHistoryItemChange, changeKey: string) => void;
75
87
  protected openChange(change: ScmHistoryItemChange): void;
76
88
  protected renderChangeRowSvg(graphRow: GraphRow, svgWidth: number): React.ReactElement;
@@ -1 +1 @@
1
- {"version":3,"file":"scm-history-graph-widget.d.ts","sourceRoot":"","sources":["../../src/browser/scm-history-graph-widget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scm-history-graph-widget.d.ts","sourceRoot":"","sources":["../../src/browser/scm-history-graph-widget.tsx"],"names":[],"mappings":"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"}
@@ -53,6 +53,17 @@ const ROW_HEIGHT = 22;
53
53
  const LANE_WIDTH = 22;
54
54
  /** Y position of the commit dot — vertically centered in the row. */
55
55
  const DOT_CY = 11;
56
+ /** Indentation of one level of the change tree, in pixels. */
57
+ const TREE_INDENT = 8;
58
+ /** Shared empty set for history items whose change tree is fully expanded. */
59
+ const EMPTY_FOLDER_SET = new Set();
60
+ /**
61
+ * Indentation for a row of the change tree. Like Theia's tree widget, the depth
62
+ * is applied as padding rather than through a class, as it is not known upfront.
63
+ */
64
+ function indentStyle(depth) {
65
+ return depth > 0 ? { paddingLeft: `${4 + depth * TREE_INDENT}px` } : undefined;
66
+ }
56
67
  /** Renders a ref badge as a JSX element for the commit row. */
57
68
  function renderJsxRefBadge(ref, iconClass, showText, style, key, onContextMenu) {
58
69
  return (React.createElement("span", { key: key, className: `scm-history-ref-badge ${(0, scm_history_graph_helpers_1.getRefBadgeClass)(ref)}`, title: ref.description ?? ref.name, style: style, onContextMenu: onContextMenu },
@@ -67,10 +78,14 @@ let ScmHistoryGraphWidget = class ScmHistoryGraphWidget extends react_widget_1.R
67
78
  constructor() {
68
79
  super();
69
80
  this.selectedIndex = -1;
81
+ /** Handle on the virtualized list, used to scroll an entry into view. */
82
+ this.listRef = React.createRef();
70
83
  /** Map from commit id → loaded changes (undefined = not loaded yet). */
71
84
  this.expandedChanges = new Map();
72
85
  /** Set of commit ids that are currently expanded. */
73
86
  this.expandedIds = new Set();
87
+ /** Map from commit id → folder paths collapsed in its change tree. */
88
+ this.collapsedFolders = new Map();
74
89
  /** Map from commit id → in-flight CancellationTokenSource for loadChanges. */
75
90
  this.loadChangesCts = new Map();
76
91
  /** Cleanup for the content of the hover currently being shown. */
@@ -92,6 +107,10 @@ let ScmHistoryGraphWidget = class ScmHistoryGraphWidget extends react_widget_1.R
92
107
  interactive: true,
93
108
  });
94
109
  };
110
+ this.handleFolderClick = (e, itemId, path) => {
111
+ e.stopPropagation();
112
+ this.toggleFolder(itemId, path);
113
+ };
95
114
  this.handleChangeClick = (e, change, changeKey) => {
96
115
  e.stopPropagation();
97
116
  this.selectedChangeKey = changeKey;
@@ -147,6 +166,7 @@ let ScmHistoryGraphWidget = class ScmHistoryGraphWidget extends react_widget_1.R
147
166
  const { item } = entry;
148
167
  if (this.expandedIds.has(item.id)) {
149
168
  this.expandedIds.delete(item.id);
169
+ this.collapsedFolders.delete(item.id);
150
170
  const cts = this.loadChangesCts.get(item.id);
151
171
  if (cts) {
152
172
  cts.cancel();
@@ -184,6 +204,7 @@ let ScmHistoryGraphWidget = class ScmHistoryGraphWidget extends react_widget_1.R
184
204
  this.update();
185
205
  this.onDidChangeToolbarItemsEmitter.fire();
186
206
  }));
207
+ this.toDispose.push(this.model.onDidRequestReveal(index => this.revealIndex(index)));
187
208
  this.toDispose.push(this.scmPreferences.onPreferenceChanged(e => {
188
209
  if (e.preferenceName.startsWith('scm.graph.')) {
189
210
  this.update();
@@ -201,6 +222,13 @@ let ScmHistoryGraphWidget = class ScmHistoryGraphWidget extends react_widget_1.R
201
222
  this.toDispose.push(this.toDisposeOnHover);
202
223
  this.update();
203
224
  }
225
+ /** Scrolls the entry at `index` into view and selects it. */
226
+ revealIndex(index) {
227
+ this.selectedIndex = index;
228
+ this.selectedChangeKey = undefined;
229
+ this.listRef.current?.scrollToIndex({ index, align: 'center' });
230
+ this.update();
231
+ }
204
232
  updateContextKeys() {
205
233
  const provider = this.model.provider;
206
234
  this.scmContextKeys.scmCurrentHistoryItemRefHasRemote.set(!!provider?.currentHistoryItemRemoteRef);
@@ -230,7 +258,7 @@ let ScmHistoryGraphWidget = class ScmHistoryGraphWidget extends react_widget_1.R
230
258
  : hasMore
231
259
  ? () => (React.createElement("div", { className: 'scm-history-load-more', onClick: this.handleLoadMore, role: 'button', tabIndex: 0, onKeyDown: this.handleLoadMoreKey }, nls_1.nls.localizeByDefault('Load more')))
232
260
  : undefined;
233
- return (React.createElement(react_virtuoso_1.Virtuoso, { className: 'scm-history-graph-list', data: entries, itemContent: (idx, entry) => this.renderRow(entry, idx, svgWidth), endReached: hasMore && !loading && this.scmPreferences['scm.graph.pageOnScroll'] !== false ? this.handleEndReached : undefined, overscan: 500, components: footer ? { Footer: footer } : {}, style: { overflowX: 'hidden' } }));
261
+ return (React.createElement(react_virtuoso_1.Virtuoso, { ref: this.listRef, className: 'scm-history-graph-list', data: entries, itemContent: (idx, entry) => this.renderRow(entry, idx, svgWidth), endReached: hasMore && !loading && this.scmPreferences['scm.graph.pageOnScroll'] !== false ? this.handleEndReached : undefined, overscan: 500, components: footer ? { Footer: footer } : {}, style: { overflowX: 'hidden' } }));
234
262
  }
235
263
  renderRow(entry, idx, svgWidth) {
236
264
  const { item, graphRow } = entry;
@@ -291,14 +319,44 @@ let ScmHistoryGraphWidget = class ScmHistoryGraphWidget extends react_widget_1.R
291
319
  if (changes.length === 0) {
292
320
  return (React.createElement("div", { key: `${itemId}-empty`, className: 'scm-history-changes-empty' }, nls_1.nls.localize('theia/scm/noChanges', 'No changed files.')));
293
321
  }
322
+ if (this.model.viewMode === 'tree') {
323
+ const rootUri = this.scmService.selectedRepository?.provider.rootUri;
324
+ const rows = (0, scm_history_graph_helpers_1.buildChangeTreeRows)(changes, rootUri, this.collapsedFolders.get(itemId) ?? EMPTY_FOLDER_SET);
325
+ return (React.createElement(React.Fragment, { key: `${itemId}-changes` }, rows.map(row => row.type === 'folder'
326
+ ? this.renderChangeFolderRow(row, itemId, svgWidth, graphRow)
327
+ : this.renderChangeRow(row.change, row.index, itemId, svgWidth, graphRow, row.depth))));
328
+ }
294
329
  return (React.createElement(React.Fragment, { key: `${itemId}-changes` }, changes.map((change, ci) => this.renderChangeRow(change, ci, itemId, svgWidth, graphRow))));
295
330
  }
296
- renderChangeRow(change, ci, itemId, svgWidth, graphRow) {
331
+ renderChangeFolderRow(row, itemId, svgWidth, graphRow) {
332
+ const collapsed = this.isFolderCollapsed(itemId, row.path);
333
+ return (React.createElement("div", { key: `${itemId}-folder-${row.path}`, className: 'scm-history-change-row scm-history-change-folder-row', onClick: e => this.handleFolderClick(e, itemId, row.path), role: 'treeitem', "aria-expanded": !collapsed, tabIndex: -1 },
334
+ this.renderChangeRowSvg(graphRow, svgWidth),
335
+ React.createElement("div", { className: 'scm-history-change-info', style: indentStyle(row.depth) },
336
+ React.createElement("span", { className: `codicon ${collapsed ? 'codicon-chevron-right' : 'codicon-chevron-down'} scm-history-change-twistie` }),
337
+ React.createElement("span", { className: 'name scm-history-change-name', title: row.path }, row.label))));
338
+ }
339
+ isFolderCollapsed(itemId, path) {
340
+ return !!this.collapsedFolders.get(itemId)?.has(path);
341
+ }
342
+ toggleFolder(itemId, path) {
343
+ let collapsed = this.collapsedFolders.get(itemId);
344
+ if (!collapsed) {
345
+ collapsed = new Set();
346
+ this.collapsedFolders.set(itemId, collapsed);
347
+ }
348
+ if (!collapsed.delete(path)) {
349
+ collapsed.add(path);
350
+ }
351
+ this.update();
352
+ }
353
+ renderChangeRow(change, ci, itemId, svgWidth, graphRow, depth = 0) {
297
354
  const rootUri = this.scmService.selectedRepository?.provider.rootUri;
298
355
  const uri = change.modifiedUri ?? change.originalUri ?? change.uri;
299
356
  const relativePath = (0, scm_history_graph_helpers_1.getRepoRelativePath)(uri, rootUri);
300
357
  const fileName = (0, scm_history_graph_helpers_1.getFileName)(relativePath);
301
- const dirPath = relativePath.includes('/')
358
+ // In tree mode the folder rows already carry the directory.
359
+ const dirPath = this.model.viewMode === 'list' && relativePath.includes('/')
302
360
  ? relativePath.slice(0, relativePath.lastIndexOf('/'))
303
361
  : '';
304
362
  const status = (0, scm_history_graph_helpers_1.getChangeStatus)(change);
@@ -309,7 +367,7 @@ let ScmHistoryGraphWidget = class ScmHistoryGraphWidget extends react_widget_1.R
309
367
  const isSelected = this.selectedChangeKey === changeKey;
310
368
  return (React.createElement("div", { key: changeKey, className: `scm-history-change-row${isSelected ? ' selected' : ''}`, onClick: e => this.handleChangeClick(e, change, changeKey), role: 'treeitem', tabIndex: -1 },
311
369
  this.renderChangeRowSvg(graphRow, svgWidth),
312
- React.createElement("div", { className: 'scm-history-change-info' },
370
+ React.createElement("div", { className: 'scm-history-change-info', style: indentStyle(depth) },
313
371
  React.createElement("span", { className: `${fileIcon} file-icon scm-history-change-file-icon` }),
314
372
  React.createElement("div", { className: 'scm-history-change-name-container' },
315
373
  React.createElement("span", { className: 'name scm-history-change-name', title: relativePath }, fileName),