@theia/markers 1.24.0-next.2 → 1.24.0-next.22

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.
@@ -40,6 +40,7 @@ export declare abstract class MarkerManager<D extends object> {
40
40
  protected fireOnDidChangeMarkers(uri: URI): void;
41
41
  setMarkers(uri: URI, owner: string, data: D[]): Marker<D>[];
42
42
  findMarkers(filter?: SearchFilter<D>): Marker<D>[];
43
+ getMarkersByUri(): IterableIterator<[string, MarkerCollection<D>]>;
43
44
  getUris(): IterableIterator<string>;
44
45
  cleanAllMarkers(uri?: URI): void;
45
46
  protected doCleanAllMarkers(uri: URI): void;
@@ -1 +1 @@
1
- {"version":3,"file":"marker-manager.d.ts","sourceRoot":"","sources":["../../src/browser/marker-manager.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAkB,MAAM,oCAAoC,CAAC;AAKtF,MAAM,WAAW,YAAY,CAAC,CAAC;IAC3B,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAA;CACpC;AAED,qBAAa,gBAAgB,CAAC,CAAC;aAKP,GAAG,EAAE,GAAG;aACR,IAAI,EAAE,MAAM;IAJhC,SAAS,CAAC,QAAQ,CAAC,aAAa,qCAA4C;gBAGxD,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,MAAM;IAGhC,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,SAAS,IAAI,MAAM,EAAE;IAIrB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;IAIhD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;IAUvD,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IASnE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;IAejD,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;CAWxF;AAED,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,8BACsB,aAAa,CAAC,CAAC,SAAS,MAAM;aAEhC,OAAO,IAAI,MAAM;IAEjC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,mCAA0C;IACjF,SAAS,CAAC,QAAQ,CAAC,yBAAyB,eAAsB;IAGlE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,IAAI,IAAI,IAAI;IAQtB,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IASrD,IAAI,kBAAkB,IAAI,KAAK,CAAC,GAAG,CAAC,CAEnC;IAED,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAOhD,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;IAgB3D,WAAW,CAAC,MAAM,GAAE,YAAY,CAAC,CAAC,CAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;IAYtD,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAInC,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI;IAShC,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;CAS9C"}
1
+ {"version":3,"file":"marker-manager.d.ts","sourceRoot":"","sources":["../../src/browser/marker-manager.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAkB,MAAM,oCAAoC,CAAC;AAKtF,MAAM,WAAW,YAAY,CAAC,CAAC;IAC3B,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAA;CACpC;AAED,qBAAa,gBAAgB,CAAC,CAAC;aAKP,GAAG,EAAE,GAAG;aACR,IAAI,EAAE,MAAM;IAJhC,SAAS,CAAC,QAAQ,CAAC,aAAa,qCAA4C;gBAGxD,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,MAAM;IAGhC,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,SAAS,IAAI,MAAM,EAAE;IAIrB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;IAIhD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;IAUvD,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IASnE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;IAejD,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;CAWxF;AAED,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,8BACsB,aAAa,CAAC,CAAC,SAAS,MAAM;aAEhC,OAAO,IAAI,MAAM;IAEjC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,mCAA0C;IACjF,SAAS,CAAC,QAAQ,CAAC,yBAAyB,eAAsB;IAGlE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,IAAI,IAAI,IAAI;IAQtB,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IASrD,IAAI,kBAAkB,IAAI,KAAK,CAAC,GAAG,CAAC,CAEnC;IAED,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAOhD,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;IAgB3D,WAAW,CAAC,MAAM,GAAE,YAAY,CAAC,CAAC,CAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;IAYtD,eAAe,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAIlE,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAInC,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI;IAShC,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;CAS9C"}
@@ -146,6 +146,9 @@ let MarkerManager = class MarkerManager {
146
146
  }
147
147
  return result;
148
148
  }
149
+ getMarkersByUri() {
150
+ return this.uri2MarkerCollection.entries();
151
+ }
149
152
  getUris() {
150
153
  return this.uri2MarkerCollection.keys();
151
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"marker-manager.js","sourceRoot":"","sources":["../../src/browser/marker-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marker-manager.js","sourceRoot":"","sources":["../../src/browser/marker-manager.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Diagnostic } from '@theia/core/shared/vscode-languageserver-protocol';
2
2
  import URI from '@theia/core/lib/common/uri';
3
3
  import { Event, Emitter } from '@theia/core/lib/common/event';
4
- import { Tree } from '@theia/core/lib/browser/tree/tree';
4
+ import { Tree, TreeNode } from '@theia/core/lib/browser/tree/tree';
5
5
  import { TreeDecorator, TreeDecoration } from '@theia/core/lib/browser/tree/tree-decorator';
6
6
  import { Marker } from '../../common/marker';
7
7
  import { ProblemManager } from './problem-manager';
@@ -23,11 +23,17 @@ export declare class ProblemDecorator implements TreeDecorator {
23
23
  protected collectDecorators(tree: Tree): Map<string, TreeDecoration.Data>;
24
24
  protected appendSuffixDecoration(nodeURI: URI, existingDecorations?: TreeDecoration.Data): TreeDecoration.Data;
25
25
  protected generateCaptionSuffix(nodeURI: URI): string;
26
- protected appendContainerMarkers(tree: Tree, markers: Marker<Diagnostic>[]): Map<string, Marker<Diagnostic>>;
27
- protected collectMarkers(tree: Tree): Marker<Diagnostic>[];
28
- protected toDecorator(marker: Marker<Diagnostic>): TreeDecoration.Data;
29
- protected getOverlayIcon(marker: Marker<Diagnostic>): string;
30
- protected getOverlayIconColor(marker: Marker<Diagnostic>): TreeDecoration.Color;
26
+ /**
27
+ * Traverses up the tree from the given node and attaches decorations to any parents.
28
+ */
29
+ protected appendContainerMarkers(node: TreeNode, decoration: TreeDecoration.Data, decorations: Map<string, TreeDecoration.Data>): void;
30
+ /**
31
+ * @returns a map matching stringified URI's to a decoration whose features reflect the highest-severity problem found
32
+ * and the number of problems found (based on {@link ProblemDecorator.toDecorator })
33
+ */
34
+ protected collectMarkers(tree: Tree): Map<string, TreeDecoration.Data>;
35
+ protected toDecorator(markers: Marker<Diagnostic>[]): TreeDecoration.Data;
36
+ protected getColor(marker: Marker<Diagnostic>): TreeDecoration.Color;
31
37
  /**
32
38
  * Get the decoration for a given marker diagnostic.
33
39
  * Markers with higher severity have a higher priority and should be displayed.
@@ -39,7 +45,9 @@ export declare class ProblemDecorator implements TreeDecorator {
39
45
  * Otherwise, returns `false`.
40
46
  */
41
47
  protected filterMarker(marker: Marker<Diagnostic>): boolean;
48
+ protected getUriFromNode(node: TreeNode): string | undefined;
42
49
  protected compare(left: Marker<Diagnostic>, right: Marker<Diagnostic>): number;
50
+ protected compareDecorators(left: TreeDecoration.Data, right: TreeDecoration.Data): number;
43
51
  }
44
52
  export declare namespace ProblemDecorator {
45
53
  const severityCompare: (a: Marker<Diagnostic>, b: Marker<Diagnostic>) => number;
@@ -1 +1 @@
1
- {"version":3,"file":"problem-decorator.d.ts","sourceRoot":"","sources":["../../../src/browser/problem/problem-decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"problem-decorator.d.ts","sourceRoot":"","sources":["../../../src/browser/problem/problem-decorator.ts"],"names":[],"mappings":"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"}
@@ -31,8 +31,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.ProblemDecorator = void 0;
32
32
  const inversify_1 = require("@theia/core/shared/inversify");
33
33
  const vscode_languageserver_protocol_1 = require("@theia/core/shared/vscode-languageserver-protocol");
34
- const uri_1 = require("@theia/core/lib/common/uri");
35
- const objects_1 = require("@theia/core/lib/common/objects");
36
34
  const event_1 = require("@theia/core/lib/common/event");
37
35
  const tree_iterator_1 = require("@theia/core/lib/browser/tree/tree-iterator");
38
36
  const tree_decorator_1 = require("@theia/core/lib/browser/tree/tree-decorator");
@@ -75,21 +73,20 @@ let ProblemDecorator = ProblemDecorator_1 = class ProblemDecorator {
75
73
  collectDecorators(tree) {
76
74
  const decorations = new Map();
77
75
  // If the tree root is undefined or the preference for the decorations is disabled, return an empty result map.
78
- if (tree.root === undefined || !this.problemPreferences['problems.decorations.enabled']) {
76
+ if (!tree.root || !this.problemPreferences['problems.decorations.enabled']) {
79
77
  return decorations;
80
78
  }
81
- const markers = this.appendContainerMarkers(tree, this.collectMarkers(tree));
79
+ const baseDecorations = this.collectMarkers(tree);
82
80
  for (const node of new tree_iterator_1.DepthFirstTreeIterator(tree.root)) {
83
- const nodeUri = browser_1.FileStatNode.getUri(node);
81
+ const nodeUri = this.getUriFromNode(node);
84
82
  if (nodeUri) {
85
- const marker = markers.get(nodeUri);
86
- let decorator;
87
- if (marker) {
88
- decorator = this.toDecorator(marker);
89
- }
83
+ let decorator = baseDecorations.get(nodeUri);
90
84
  if (navigator_open_editors_tree_model_1.OpenEditorNode.is(node)) {
91
85
  decorator = this.appendSuffixDecoration(node.uri, decorator);
92
86
  }
87
+ else if (decorator) {
88
+ this.appendContainerMarkers(node, decorator, decorations);
89
+ }
93
90
  if (decorator) {
94
91
  decorations.set(node.id, decorator);
95
92
  }
@@ -130,75 +127,54 @@ let ProblemDecorator = ProblemDecorator_1 = class ProblemDecorator {
130
127
  }
131
128
  return `${workspacePrefixString}${separator}${filePathString}`;
132
129
  }
133
- appendContainerMarkers(tree, markers) {
134
- const result = new Map();
135
- // We traverse up and assign the diagnostic to the container directory.
136
- // Note, instead of stopping at the WS root, we traverse up the driver root.
137
- // We will filter them later based on the expansion state of the tree.
138
- for (const [uri, marker] of new Map(markers.map(m => [new uri_1.default(m.uri), m])).entries()) {
139
- const uriString = uri.toString();
140
- result.set(uriString, marker);
141
- let parentUri = uri.parent;
142
- while (parentUri && !parentUri.path.isRoot) {
143
- const parentUriString = parentUri.toString();
144
- const existing = result.get(parentUriString);
145
- // Make sure the highest diagnostic severity (smaller number) will be propagated to the container directory.
146
- if (existing === undefined || this.compare(marker, existing) < 0) {
147
- result.set(parentUriString, {
148
- data: marker.data,
149
- uri: parentUriString,
150
- owner: marker.owner,
151
- kind: marker.kind
152
- });
153
- parentUri = parentUri.parent;
154
- }
155
- else {
156
- parentUri = undefined;
157
- }
130
+ /**
131
+ * Traverses up the tree from the given node and attaches decorations to any parents.
132
+ */
133
+ appendContainerMarkers(node, decoration, decorations) {
134
+ let parent = node === null || node === void 0 ? void 0 : node.parent;
135
+ while (parent) {
136
+ const existing = decorations.get(parent.id);
137
+ // Make sure the highest diagnostic severity (smaller number) will be propagated to the container directory.
138
+ if (existing === undefined || this.compareDecorators(existing, decoration) < 0) {
139
+ decorations.set(parent.id, decoration);
140
+ parent = parent.parent;
141
+ }
142
+ else {
143
+ break;
158
144
  }
159
145
  }
160
- return result;
161
146
  }
147
+ /**
148
+ * @returns a map matching stringified URI's to a decoration whose features reflect the highest-severity problem found
149
+ * and the number of problems found (based on {@link ProblemDecorator.toDecorator })
150
+ */
162
151
  collectMarkers(tree) {
163
- return Array.from(this.problemManager.getUris())
164
- .map(uri => new uri_1.default(uri))
165
- .map(uri => this.problemManager.findMarkers({ uri }))
166
- .map(markers => markers.sort(this.compare.bind(this)))
167
- .map(markers => markers.shift())
168
- .filter(objects_1.notEmpty)
169
- .filter(this.filterMarker.bind(this));
152
+ const decorationsForUri = new Map();
153
+ const compare = this.compare.bind(this);
154
+ const filter = this.filterMarker.bind(this);
155
+ for (const [, markers] of this.problemManager.getMarkersByUri()) {
156
+ const relevant = markers.findMarkers({}).filter(filter).sort(compare);
157
+ if (relevant.length) {
158
+ decorationsForUri.set(relevant[0].uri, this.toDecorator(relevant));
159
+ }
160
+ }
161
+ return decorationsForUri;
170
162
  }
171
- toDecorator(marker) {
172
- const position = tree_decorator_1.TreeDecoration.IconOverlayPosition.BOTTOM_RIGHT;
173
- const icon = this.getOverlayIcon(marker);
174
- const color = this.getOverlayIconColor(marker);
175
- const priority = this.getPriority(marker);
163
+ toDecorator(markers) {
164
+ const color = this.getColor(markers[0]);
165
+ const priority = this.getPriority(markers[0]);
176
166
  return {
177
167
  priority,
178
168
  fontData: {
179
169
  color,
180
170
  },
181
- iconOverlay: {
182
- position,
183
- icon,
184
- color,
185
- background: {
186
- shape: 'circle',
187
- color: 'transparent'
188
- }
189
- },
171
+ tailDecorations: [{
172
+ color,
173
+ data: markers.length.toString(),
174
+ }],
190
175
  };
191
176
  }
192
- getOverlayIcon(marker) {
193
- const { severity } = marker.data;
194
- switch (severity) {
195
- case 1: return 'times-circle';
196
- case 2: return 'exclamation-circle';
197
- case 3: return 'info-circle';
198
- default: return 'hand-o-up';
199
- }
200
- }
201
- getOverlayIconColor(marker) {
177
+ getColor(marker) {
202
178
  const { severity } = marker.data;
203
179
  switch (severity) {
204
180
  case 1: return 'var(--theia-editorError-foreground)';
@@ -231,9 +207,15 @@ let ProblemDecorator = ProblemDecorator_1 = class ProblemDecorator {
231
207
  || severity === vscode_languageserver_protocol_1.DiagnosticSeverity.Warning
232
208
  || severity === vscode_languageserver_protocol_1.DiagnosticSeverity.Information;
233
209
  }
210
+ getUriFromNode(node) {
211
+ return browser_1.FileStatNode.getUri(node);
212
+ }
234
213
  compare(left, right) {
235
214
  return ProblemDecorator_1.severityCompare(left, right);
236
215
  }
216
+ compareDecorators(left, right) {
217
+ return tree_decorator_1.TreeDecoration.Data.comparePriority(left, right);
218
+ }
237
219
  };
238
220
  __decorate([
239
221
  (0, inversify_1.inject)(problem_preferences_1.ProblemPreferences),
@@ -1 +1 @@
1
- {"version":3,"file":"problem-decorator.js","sourceRoot":"","sources":["../../../src/browser/problem/problem-decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"problem-decorator.js","sourceRoot":"","sources":["../../../src/browser/problem/problem-decorator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@theia/markers",
3
- "version": "1.24.0-next.2+ebd0fb87b8a",
3
+ "version": "1.24.0-next.22+334b92eed8b",
4
4
  "description": "Theia - Markers Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.24.0-next.2+ebd0fb87b8a",
7
- "@theia/filesystem": "1.24.0-next.2+ebd0fb87b8a",
8
- "@theia/navigator": "1.24.0-next.2+ebd0fb87b8a",
9
- "@theia/workspace": "1.24.0-next.2+ebd0fb87b8a"
6
+ "@theia/core": "1.24.0-next.22+334b92eed8b",
7
+ "@theia/filesystem": "1.24.0-next.22+334b92eed8b",
8
+ "@theia/navigator": "1.24.0-next.22+334b92eed8b",
9
+ "@theia/workspace": "1.24.0-next.22+334b92eed8b"
10
10
  },
11
11
  "publishConfig": {
12
12
  "access": "public"
@@ -46,5 +46,5 @@
46
46
  "nyc": {
47
47
  "extends": "../../configs/nyc.json"
48
48
  },
49
- "gitHead": "ebd0fb87b8aee979747b6820154311f8dd9cddff"
49
+ "gitHead": "334b92eed8b1c76f2c062a3891530e631107b7a5"
50
50
  }
@@ -176,6 +176,10 @@ export abstract class MarkerManager<D extends object> {
176
176
  return result;
177
177
  }
178
178
 
179
+ getMarkersByUri(): IterableIterator<[string, MarkerCollection<D>]> {
180
+ return this.uri2MarkerCollection.entries();
181
+ }
182
+
179
183
  getUris(): IterableIterator<string> {
180
184
  return this.uri2MarkerCollection.keys();
181
185
  }
@@ -17,9 +17,8 @@
17
17
  import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
18
18
  import { Diagnostic, DiagnosticSeverity } from '@theia/core/shared/vscode-languageserver-protocol';
19
19
  import URI from '@theia/core/lib/common/uri';
20
- import { notEmpty } from '@theia/core/lib/common/objects';
21
20
  import { Event, Emitter } from '@theia/core/lib/common/event';
22
- import { Tree } from '@theia/core/lib/browser/tree/tree';
21
+ import { Tree, TreeNode } from '@theia/core/lib/browser/tree/tree';
23
22
  import { DepthFirstTreeIterator } from '@theia/core/lib/browser/tree/tree-iterator';
24
23
  import { TreeDecorator, TreeDecoration } from '@theia/core/lib/browser/tree/tree-decorator';
25
24
  import { FileStatNode } from '@theia/filesystem/lib/browser';
@@ -79,20 +78,18 @@ export class ProblemDecorator implements TreeDecorator {
79
78
  protected collectDecorators(tree: Tree): Map<string, TreeDecoration.Data> {
80
79
  const decorations = new Map<string, TreeDecoration.Data>();
81
80
  // If the tree root is undefined or the preference for the decorations is disabled, return an empty result map.
82
- if (tree.root === undefined || !this.problemPreferences['problems.decorations.enabled']) {
81
+ if (!tree.root || !this.problemPreferences['problems.decorations.enabled']) {
83
82
  return decorations;
84
83
  }
85
- const markers = this.appendContainerMarkers(tree, this.collectMarkers(tree));
84
+ const baseDecorations = this.collectMarkers(tree);
86
85
  for (const node of new DepthFirstTreeIterator(tree.root)) {
87
- const nodeUri = FileStatNode.getUri(node);
86
+ const nodeUri = this.getUriFromNode(node);
88
87
  if (nodeUri) {
89
- const marker = markers.get(nodeUri);
90
- let decorator: TreeDecoration.Data | undefined;
91
- if (marker) {
92
- decorator = this.toDecorator(marker);
93
- }
88
+ let decorator = baseDecorations.get(nodeUri);
94
89
  if (OpenEditorNode.is(node)) {
95
90
  decorator = this.appendSuffixDecoration(node.uri, decorator);
91
+ } else if (decorator) {
92
+ this.appendContainerMarkers(node, decorator, decorations);
96
93
  }
97
94
  if (decorator) {
98
95
  decorations.set(node.id, decorator);
@@ -134,78 +131,56 @@ export class ProblemDecorator implements TreeDecorator {
134
131
  return `${workspacePrefixString}${separator}${filePathString}`;
135
132
  }
136
133
 
137
- protected appendContainerMarkers(tree: Tree, markers: Marker<Diagnostic>[]): Map<string, Marker<Diagnostic>> {
138
- const result: Map<string, Marker<Diagnostic>> = new Map();
139
- // We traverse up and assign the diagnostic to the container directory.
140
- // Note, instead of stopping at the WS root, we traverse up the driver root.
141
- // We will filter them later based on the expansion state of the tree.
142
- for (const [uri, marker] of new Map(markers.map(m => [new URI(m.uri), m] as [URI, Marker<Diagnostic>])).entries()) {
143
- const uriString = uri.toString();
144
- result.set(uriString, marker);
145
- let parentUri: URI | undefined = uri.parent;
146
- while (parentUri && !parentUri.path.isRoot) {
147
- const parentUriString = parentUri.toString();
148
- const existing = result.get(parentUriString);
149
- // Make sure the highest diagnostic severity (smaller number) will be propagated to the container directory.
150
- if (existing === undefined || this.compare(marker, existing) < 0) {
151
- result.set(parentUriString, {
152
- data: marker.data,
153
- uri: parentUriString,
154
- owner: marker.owner,
155
- kind: marker.kind
156
- });
157
- parentUri = parentUri.parent;
158
- } else {
159
- parentUri = undefined;
160
- }
134
+ /**
135
+ * Traverses up the tree from the given node and attaches decorations to any parents.
136
+ */
137
+ protected appendContainerMarkers(node: TreeNode, decoration: TreeDecoration.Data, decorations: Map<string, TreeDecoration.Data>): void {
138
+ let parent = node?.parent;
139
+ while (parent) {
140
+ const existing = decorations.get(parent.id);
141
+ // Make sure the highest diagnostic severity (smaller number) will be propagated to the container directory.
142
+ if (existing === undefined || this.compareDecorators(existing, decoration) < 0) {
143
+ decorations.set(parent.id, decoration);
144
+ parent = parent.parent;
145
+ } else {
146
+ break;
161
147
  }
162
148
  }
163
- return result;
164
149
  }
165
150
 
166
- protected collectMarkers(tree: Tree): Marker<Diagnostic>[] {
167
- return Array.from(this.problemManager.getUris())
168
- .map(uri => new URI(uri))
169
- .map(uri => this.problemManager.findMarkers({ uri }))
170
- .map(markers => markers.sort(this.compare.bind(this)))
171
- .map(markers => markers.shift())
172
- .filter(notEmpty)
173
- .filter(this.filterMarker.bind(this));
151
+ /**
152
+ * @returns a map matching stringified URI's to a decoration whose features reflect the highest-severity problem found
153
+ * and the number of problems found (based on {@link ProblemDecorator.toDecorator })
154
+ */
155
+ protected collectMarkers(tree: Tree): Map<string, TreeDecoration.Data> {
156
+ const decorationsForUri = new Map();
157
+ const compare = this.compare.bind(this);
158
+ const filter = this.filterMarker.bind(this);
159
+ for (const [, markers] of this.problemManager.getMarkersByUri()) {
160
+ const relevant = markers.findMarkers({}).filter(filter).sort(compare);
161
+ if (relevant.length) {
162
+ decorationsForUri.set(relevant[0].uri, this.toDecorator(relevant));
163
+ }
164
+ }
165
+ return decorationsForUri;
174
166
  }
175
167
 
176
- protected toDecorator(marker: Marker<Diagnostic>): TreeDecoration.Data {
177
- const position = TreeDecoration.IconOverlayPosition.BOTTOM_RIGHT;
178
- const icon = this.getOverlayIcon(marker);
179
- const color = this.getOverlayIconColor(marker);
180
- const priority = this.getPriority(marker);
168
+ protected toDecorator(markers: Marker<Diagnostic>[]): TreeDecoration.Data {
169
+ const color = this.getColor(markers[0]);
170
+ const priority = this.getPriority(markers[0]);
181
171
  return {
182
172
  priority,
183
173
  fontData: {
184
174
  color,
185
175
  },
186
- iconOverlay: {
187
- position,
188
- icon,
176
+ tailDecorations: [{
189
177
  color,
190
- background: {
191
- shape: 'circle',
192
- color: 'transparent'
193
- }
194
- },
178
+ data: markers.length.toString(),
179
+ }],
195
180
  };
196
181
  }
197
182
 
198
- protected getOverlayIcon(marker: Marker<Diagnostic>): string {
199
- const { severity } = marker.data;
200
- switch (severity) {
201
- case 1: return 'times-circle';
202
- case 2: return 'exclamation-circle';
203
- case 3: return 'info-circle';
204
- default: return 'hand-o-up';
205
- }
206
- }
207
-
208
- protected getOverlayIconColor(marker: Marker<Diagnostic>): TreeDecoration.Color {
183
+ protected getColor(marker: Marker<Diagnostic>): TreeDecoration.Color {
209
184
  const { severity } = marker.data;
210
185
  switch (severity) {
211
186
  case 1: return 'var(--theia-editorError-foreground)';
@@ -241,10 +216,17 @@ export class ProblemDecorator implements TreeDecorator {
241
216
  || severity === DiagnosticSeverity.Information;
242
217
  }
243
218
 
219
+ protected getUriFromNode(node: TreeNode): string | undefined {
220
+ return FileStatNode.getUri(node);
221
+ }
222
+
244
223
  protected compare(left: Marker<Diagnostic>, right: Marker<Diagnostic>): number {
245
224
  return ProblemDecorator.severityCompare(left, right);
246
225
  }
247
226
 
227
+ protected compareDecorators(left: TreeDecoration.Data, right: TreeDecoration.Data): number {
228
+ return TreeDecoration.Data.comparePriority(left, right);
229
+ }
248
230
  }
249
231
 
250
232
  export namespace ProblemDecorator {