@codingame/monaco-vscode-markers-service-override 4.5.1 → 5.0.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.
- package/package.json +2 -2
- package/vscode/src/vs/workbench/contrib/markers/browser/markers.contribution.js +83 -213
- package/vscode/src/vs/workbench/contrib/markers/browser/markersFileDecorations.js +14 -26
- package/vscode/src/vs/workbench/contrib/markers/browser/markersTable.js +60 -65
- package/vscode/src/vs/workbench/contrib/markers/browser/markersTreeViewer.js +102 -115
- package/vscode/src/vs/workbench/contrib/markers/browser/markersView.js +82 -87
- package/vscode/src/vs/workbench/contrib/markers/browser/messages.js +60 -205
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
2
|
import { append, $, clearNode, addDisposableListener, EventType } from 'vscode/vscode/vs/base/browser/dom';
|
|
3
|
-
import { Schemas } from 'vscode/vscode/vs/base/common/network';
|
|
4
3
|
import { dirname, basename as basename$1 } from 'vscode/vscode/vs/base/common/path';
|
|
5
4
|
import { CountBadge } from 'vscode/vscode/vs/base/browser/ui/countBadge/countBadge';
|
|
6
5
|
import { HighlightedLabel } from 'vscode/vscode/vs/base/browser/ui/highlightedlabel/highlightedLabel';
|
|
@@ -13,7 +12,7 @@ import { DisposableStore, Disposable, toDisposable, dispose } from 'vscode/vscod
|
|
|
13
12
|
import { ActionBar } from 'vscode/vscode/vs/base/browser/ui/actionbar/actionbar';
|
|
14
13
|
import { QuickFixAction, QuickFixActionViewItem } from './markersViewActions.js';
|
|
15
14
|
import { ILabelService } from 'vscode/vscode/vs/platform/label/common/label.service';
|
|
16
|
-
import {
|
|
15
|
+
import { basename, isEqual } from 'vscode/vscode/vs/base/common/resources';
|
|
17
16
|
import { FilterOptions } from './markersFilterOptions.js';
|
|
18
17
|
import { Emitter } from 'vscode/vscode/vs/base/common/event';
|
|
19
18
|
import { isUndefinedOrNull } from 'vscode/vscode/vs/base/common/types';
|
|
@@ -28,7 +27,6 @@ import { ACTIVE_GROUP } from 'vscode/vscode/vs/workbench/services/editor/common/
|
|
|
28
27
|
import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
29
28
|
import { SeverityIcon } from 'vscode/vscode/vs/platform/severityIcon/browser/severityIcon';
|
|
30
29
|
import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener.service';
|
|
31
|
-
import { IFileService } from 'vscode/vscode/vs/platform/files/common/files.service';
|
|
32
30
|
import { Progress } from 'vscode/vscode/vs/platform/progress/common/progress';
|
|
33
31
|
import { ActionViewItem } from 'vscode/vscode/vs/base/browser/ui/actionbar/actionViewItems';
|
|
34
32
|
import { Codicon } from 'vscode/vscode/vs/base/common/codicons';
|
|
@@ -40,19 +38,16 @@ import { MarkersContextKeys } from 'vscode/vscode/vs/workbench/contrib/markers/c
|
|
|
40
38
|
import { unsupportedSchemas } from 'vscode/vscode/vs/platform/markers/common/markerService';
|
|
41
39
|
import { defaultCountBadgeStyles } from 'vscode/vscode/vs/platform/theme/browser/defaultStyles';
|
|
42
40
|
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
43
|
-
import { setupCustomHover } from 'vscode/vscode/vs/base/browser/ui/hover/updatableHoverWidget';
|
|
44
41
|
import { getDefaultHoverDelegate } from 'vscode/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
|
|
42
|
+
import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover.service';
|
|
45
43
|
|
|
44
|
+
const _moduleId = "vs/workbench/contrib/markers/browser/markersTreeViewer";
|
|
46
45
|
let MarkersWidgetAccessibilityProvider = class MarkersWidgetAccessibilityProvider {
|
|
47
46
|
constructor(labelService) {
|
|
48
47
|
this.labelService = labelService;
|
|
49
48
|
}
|
|
50
49
|
getWidgetAriaLabel() {
|
|
51
|
-
return ( localizeWithPath(
|
|
52
|
-
'vs/workbench/contrib/markers/browser/markersTreeViewer',
|
|
53
|
-
'problemsView',
|
|
54
|
-
"Problems View"
|
|
55
|
-
));
|
|
50
|
+
return ( localizeWithPath(_moduleId, 0, "Problems View"));
|
|
56
51
|
}
|
|
57
52
|
getAriaLabel(element) {
|
|
58
53
|
if (element instanceof ResourceMarkers) {
|
|
@@ -68,9 +63,9 @@ let MarkersWidgetAccessibilityProvider = class MarkersWidgetAccessibilityProvide
|
|
|
68
63
|
return null;
|
|
69
64
|
}
|
|
70
65
|
};
|
|
71
|
-
MarkersWidgetAccessibilityProvider = ( __decorate([
|
|
72
|
-
( __param(0, ILabelService))
|
|
73
|
-
], MarkersWidgetAccessibilityProvider));
|
|
66
|
+
MarkersWidgetAccessibilityProvider = ( (__decorate([
|
|
67
|
+
( (__param(0, ILabelService)))
|
|
68
|
+
], MarkersWidgetAccessibilityProvider)));
|
|
74
69
|
class VirtualDelegate {
|
|
75
70
|
static { this.LINE_HEIGHT = 22; }
|
|
76
71
|
constructor(markersViewState) {
|
|
@@ -96,13 +91,11 @@ class VirtualDelegate {
|
|
|
96
91
|
}
|
|
97
92
|
}
|
|
98
93
|
}
|
|
99
|
-
|
|
100
|
-
constructor(labels, onDidChangeRenderNodeCount
|
|
94
|
+
class ResourceMarkersRenderer {
|
|
95
|
+
constructor(labels, onDidChangeRenderNodeCount) {
|
|
101
96
|
this.labels = labels;
|
|
102
|
-
this.
|
|
103
|
-
this.
|
|
104
|
-
this.renderedNodes = ( new Map());
|
|
105
|
-
this.disposables = ( new DisposableStore());
|
|
97
|
+
this.renderedNodes = ( (new Map()));
|
|
98
|
+
this.disposables = ( (new DisposableStore()));
|
|
106
99
|
this.templateId = "rm" ;
|
|
107
100
|
onDidChangeRenderNodeCount(this.onDidChangeRenderNodeCount, this, this.disposables);
|
|
108
101
|
}
|
|
@@ -110,18 +103,13 @@ let ResourceMarkersRenderer = class ResourceMarkersRenderer {
|
|
|
110
103
|
const resourceLabelContainer = append(container, $('.resource-label-container'));
|
|
111
104
|
const resourceLabel = this.labels.create(resourceLabelContainer, { supportHighlights: true });
|
|
112
105
|
const badgeWrapper = append(container, $('.count-badge-wrapper'));
|
|
113
|
-
const count = ( new CountBadge(badgeWrapper, {}, defaultCountBadgeStyles));
|
|
106
|
+
const count = ( (new CountBadge(badgeWrapper, {}, defaultCountBadgeStyles)));
|
|
114
107
|
return { count, resourceLabel };
|
|
115
108
|
}
|
|
116
109
|
renderElement(node, _, templateData) {
|
|
117
110
|
const resourceMarkers = node.element;
|
|
118
111
|
const uriMatches = node.filterData && node.filterData.uriMatches || [];
|
|
119
|
-
|
|
120
|
-
templateData.resourceLabel.setFile(resourceMarkers.resource, { matches: uriMatches });
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
templateData.resourceLabel.setResource({ name: resourceMarkers.name, description: this.labelService.getUriLabel(dirname$1(resourceMarkers.resource), { relative: true }), resource: resourceMarkers.resource }, { matches: uriMatches });
|
|
124
|
-
}
|
|
112
|
+
templateData.resourceLabel.setFile(resourceMarkers.resource, { matches: uriMatches });
|
|
125
113
|
this.updateCount(node, templateData);
|
|
126
114
|
const nodeRenders = this.renderedNodes.get(resourceMarkers) ?? [];
|
|
127
115
|
this.renderedNodes.set(resourceMarkers, [...nodeRenders, templateData]);
|
|
@@ -130,7 +118,7 @@ let ResourceMarkersRenderer = class ResourceMarkersRenderer {
|
|
|
130
118
|
const nodeRenders = this.renderedNodes.get(node.element) ?? [];
|
|
131
119
|
const nodeRenderIndex = nodeRenders.findIndex(nodeRender => templateData === nodeRender);
|
|
132
120
|
if (nodeRenderIndex < 0) {
|
|
133
|
-
throw new Error('Disposing unknown resource marker');
|
|
121
|
+
throw ( (new Error('Disposing unknown resource marker')));
|
|
134
122
|
}
|
|
135
123
|
if (nodeRenders.length === 1) {
|
|
136
124
|
this.renderedNodes.delete(node.element);
|
|
@@ -155,26 +143,24 @@ let ResourceMarkersRenderer = class ResourceMarkersRenderer {
|
|
|
155
143
|
dispose() {
|
|
156
144
|
this.disposables.dispose();
|
|
157
145
|
}
|
|
158
|
-
}
|
|
159
|
-
ResourceMarkersRenderer = ( __decorate([
|
|
160
|
-
( __param(2, ILabelService)),
|
|
161
|
-
( __param(3, IFileService))
|
|
162
|
-
], ResourceMarkersRenderer));
|
|
146
|
+
}
|
|
163
147
|
let MarkerRenderer = class MarkerRenderer {
|
|
164
|
-
constructor(markersViewState, instantiationService, openerService) {
|
|
148
|
+
constructor(markersViewState, hoverService, instantiationService, openerService) {
|
|
165
149
|
this.markersViewState = markersViewState;
|
|
150
|
+
this.hoverService = hoverService;
|
|
166
151
|
this.instantiationService = instantiationService;
|
|
167
152
|
this.openerService = openerService;
|
|
168
153
|
this.templateId = "m" ;
|
|
169
154
|
}
|
|
170
155
|
renderTemplate(container) {
|
|
171
156
|
const data = Object.create(null);
|
|
172
|
-
data.markerWidget = ( new MarkerWidget(
|
|
157
|
+
data.markerWidget = ( (new MarkerWidget(
|
|
173
158
|
container,
|
|
174
159
|
this.markersViewState,
|
|
160
|
+
this.hoverService,
|
|
175
161
|
this.openerService,
|
|
176
162
|
this.instantiationService
|
|
177
|
-
));
|
|
163
|
+
)));
|
|
178
164
|
return data;
|
|
179
165
|
}
|
|
180
166
|
renderElement(node, _, templateData) {
|
|
@@ -184,18 +170,19 @@ let MarkerRenderer = class MarkerRenderer {
|
|
|
184
170
|
templateData.markerWidget.dispose();
|
|
185
171
|
}
|
|
186
172
|
};
|
|
187
|
-
MarkerRenderer = ( __decorate([
|
|
188
|
-
( __param(1,
|
|
189
|
-
( __param(2,
|
|
190
|
-
|
|
173
|
+
MarkerRenderer = ( (__decorate([
|
|
174
|
+
( (__param(1, IHoverService))),
|
|
175
|
+
( (__param(2, IInstantiationService))),
|
|
176
|
+
( (__param(3, IOpenerService)))
|
|
177
|
+
], MarkerRenderer)));
|
|
191
178
|
const expandedIcon = registerIcon('markers-view-multi-line-expanded', Codicon.chevronUp, ( localizeWithPath(
|
|
192
|
-
|
|
193
|
-
|
|
179
|
+
_moduleId,
|
|
180
|
+
1,
|
|
194
181
|
'Icon indicating that multiple lines are shown in the markers view.'
|
|
195
182
|
)));
|
|
196
183
|
const collapsedIcon = registerIcon('markers-view-multi-line-collapsed', Codicon.chevronDown, ( localizeWithPath(
|
|
197
|
-
|
|
198
|
-
|
|
184
|
+
_moduleId,
|
|
185
|
+
2,
|
|
199
186
|
'Icon indicating that multiple lines are collapsed in the markers view.'
|
|
200
187
|
)));
|
|
201
188
|
const toggleMultilineAction = 'problems.action.toggleMultiline';
|
|
@@ -213,25 +200,26 @@ class ToggleMultilineActionViewItem extends ActionViewItem {
|
|
|
213
200
|
}
|
|
214
201
|
}
|
|
215
202
|
class MarkerWidget extends Disposable {
|
|
216
|
-
constructor(parent, markersViewModel, _openerService, _instantiationService) {
|
|
203
|
+
constructor(parent, markersViewModel, _hoverService, _openerService, _instantiationService) {
|
|
217
204
|
super();
|
|
218
205
|
this.parent = parent;
|
|
219
206
|
this.markersViewModel = markersViewModel;
|
|
207
|
+
this._hoverService = _hoverService;
|
|
220
208
|
this._openerService = _openerService;
|
|
221
|
-
this.disposables = this._register(( new DisposableStore()));
|
|
222
|
-
this.actionBar = this._register(( new ActionBar(append(parent, $('.actions')), {
|
|
209
|
+
this.disposables = this._register(( (new DisposableStore())));
|
|
210
|
+
this.actionBar = this._register(( (new ActionBar(append(parent, $('.actions')), {
|
|
223
211
|
actionViewItemProvider: (action, options) => action.id === QuickFixAction.ID ? _instantiationService.createInstance(QuickFixActionViewItem, action, options) : undefined
|
|
224
|
-
})));
|
|
212
|
+
}))));
|
|
225
213
|
this.iconContainer = append(parent, $(''));
|
|
226
214
|
this.icon = append(this.iconContainer, $(''));
|
|
227
215
|
this.messageAndDetailsContainer = append(parent, $('.marker-message-details-container'));
|
|
228
|
-
this.messageAndDetailsContainerHover = this._register(
|
|
216
|
+
this.messageAndDetailsContainerHover = this._register(this._hoverService.setupUpdatableHover(getDefaultHoverDelegate('mouse'), this.messageAndDetailsContainer, ''));
|
|
229
217
|
}
|
|
230
218
|
render(element, filterData) {
|
|
231
219
|
this.actionBar.clear();
|
|
232
220
|
this.disposables.clear();
|
|
233
221
|
clearNode(this.messageAndDetailsContainer);
|
|
234
|
-
this.iconContainer.className = `marker-icon ${( Severity$1.toString(MarkerSeverity.toSeverity(element.marker.severity)))}`;
|
|
222
|
+
this.iconContainer.className = `marker-icon ${( (Severity$1.toString(MarkerSeverity.toSeverity(element.marker.severity))))}`;
|
|
235
223
|
this.icon.className = `codicon ${SeverityIcon.className(MarkerSeverity.toSeverity(element.marker.severity))}`;
|
|
236
224
|
this.renderQuickfixActionbar(element);
|
|
237
225
|
this.renderMessageAndDetails(element, filterData);
|
|
@@ -258,28 +246,22 @@ class MarkerWidget extends Disposable {
|
|
|
258
246
|
}
|
|
259
247
|
}
|
|
260
248
|
renderMultilineActionbar(marker, parent) {
|
|
261
|
-
const multilineActionbar = this.disposables.add(( new ActionBar(append(parent, $('.multiline-actions')), {
|
|
249
|
+
const multilineActionbar = this.disposables.add(( (new ActionBar(append(parent, $('.multiline-actions')), {
|
|
262
250
|
actionViewItemProvider: (action, options) => {
|
|
263
251
|
if (action.id === toggleMultilineAction) {
|
|
264
|
-
return (
|
|
252
|
+
return (
|
|
253
|
+
(new ToggleMultilineActionViewItem(undefined, action, { ...options, icon: true }))
|
|
254
|
+
);
|
|
265
255
|
}
|
|
266
256
|
return undefined;
|
|
267
257
|
}
|
|
268
|
-
})));
|
|
258
|
+
}))));
|
|
269
259
|
this.disposables.add(toDisposable(() => multilineActionbar.dispose()));
|
|
270
260
|
const viewModel = this.markersViewModel.getViewModel(marker);
|
|
271
261
|
const multiline = viewModel && viewModel.multiline;
|
|
272
|
-
const action = ( new Action(toggleMultilineAction));
|
|
262
|
+
const action = ( (new Action(toggleMultilineAction)));
|
|
273
263
|
action.enabled = !!viewModel && marker.lines.length > 1;
|
|
274
|
-
action.tooltip = multiline ? ( localizeWithPath(
|
|
275
|
-
'vs/workbench/contrib/markers/browser/markersTreeViewer',
|
|
276
|
-
'single line',
|
|
277
|
-
"Show message in single line"
|
|
278
|
-
)) : ( localizeWithPath(
|
|
279
|
-
'vs/workbench/contrib/markers/browser/markersTreeViewer',
|
|
280
|
-
'multi line',
|
|
281
|
-
"Show message in multiple lines"
|
|
282
|
-
));
|
|
264
|
+
action.tooltip = multiline ? ( localizeWithPath(_moduleId, 3, "Show message in single line")) : ( localizeWithPath(_moduleId, 4, "Show message in multiple lines"));
|
|
283
265
|
action.class = ThemeIcon.asClassName(multiline ? expandedIcon : collapsedIcon);
|
|
284
266
|
action.run = () => { if (viewModel) {
|
|
285
267
|
viewModel.multiline = !viewModel.multiline;
|
|
@@ -296,7 +278,7 @@ class MarkerWidget extends Disposable {
|
|
|
296
278
|
for (let index = 0; index < (multiline ? lines.length : 1); index++) {
|
|
297
279
|
const lineElement = append(this.messageAndDetailsContainer, $('.marker-message-line'));
|
|
298
280
|
const messageElement = append(lineElement, $('.marker-message'));
|
|
299
|
-
const highlightedLabel = this.disposables.add(( new HighlightedLabel(messageElement)));
|
|
281
|
+
const highlightedLabel = this.disposables.add(( (new HighlightedLabel(messageElement))));
|
|
300
282
|
highlightedLabel.set(lines[index].length > 1000 ? `${lines[index].substring(0, 1000)}...` : lines[index], lineMatches[index]);
|
|
301
283
|
if (lines[index] === '') {
|
|
302
284
|
lineElement.style.height = `${VirtualDelegate.LINE_HEIGHT}px`;
|
|
@@ -309,25 +291,26 @@ class MarkerWidget extends Disposable {
|
|
|
309
291
|
renderDetails(marker, filterData, parent) {
|
|
310
292
|
parent.classList.add('details-container');
|
|
311
293
|
if (marker.source || marker.code) {
|
|
312
|
-
const source = this.disposables.add(( new HighlightedLabel(append(parent, $('.marker-source')))));
|
|
294
|
+
const source = this.disposables.add(( (new HighlightedLabel(append(parent, $('.marker-source'))))));
|
|
313
295
|
const sourceMatches = filterData && filterData.sourceMatches || [];
|
|
314
296
|
source.set(marker.source, sourceMatches);
|
|
315
297
|
if (marker.code) {
|
|
316
298
|
if (typeof marker.code === 'string') {
|
|
317
|
-
const code = this.disposables.add(( new HighlightedLabel(append(parent, $('.marker-code')))));
|
|
299
|
+
const code = this.disposables.add(( (new HighlightedLabel(append(parent, $('.marker-code'))))));
|
|
318
300
|
const codeMatches = filterData && filterData.codeMatches || [];
|
|
319
301
|
code.set(marker.code, codeMatches);
|
|
320
302
|
}
|
|
321
303
|
else {
|
|
322
304
|
const container = $('.marker-code');
|
|
323
|
-
const code = this.disposables.add(( new HighlightedLabel(container)));
|
|
324
|
-
const link = ( marker.code.target.toString(true));
|
|
325
|
-
this.disposables.add(( new Link(
|
|
305
|
+
const code = this.disposables.add(( (new HighlightedLabel(container))));
|
|
306
|
+
const link = ( (marker.code.target.toString(true)));
|
|
307
|
+
this.disposables.add(( (new Link(
|
|
326
308
|
parent,
|
|
327
309
|
{ href: link, label: container, title: link },
|
|
328
310
|
undefined,
|
|
311
|
+
this._hoverService,
|
|
329
312
|
this._openerService
|
|
330
|
-
)));
|
|
313
|
+
))));
|
|
331
314
|
const codeMatches = filterData && filterData.codeMatches || [];
|
|
332
315
|
code.set(marker.code.value, codeMatches);
|
|
333
316
|
}
|
|
@@ -346,12 +329,12 @@ let RelatedInformationRenderer = class RelatedInformationRenderer {
|
|
|
346
329
|
const data = Object.create(null);
|
|
347
330
|
append(container, $('.actions'));
|
|
348
331
|
append(container, $('.icon'));
|
|
349
|
-
data.resourceLabel = ( new HighlightedLabel(append(container, $('.related-info-resource'))));
|
|
332
|
+
data.resourceLabel = ( (new HighlightedLabel(append(container, $('.related-info-resource')))));
|
|
350
333
|
data.lnCol = append(container, $('span.marker-line'));
|
|
351
334
|
const separator = append(container, $('span.related-info-resource-separator'));
|
|
352
335
|
separator.textContent = ':';
|
|
353
336
|
separator.style.paddingRight = '4px';
|
|
354
|
-
data.description = ( new HighlightedLabel(append(container, $('.marker-description'))));
|
|
337
|
+
data.description = ( (new HighlightedLabel(append(container, $('.marker-description')))));
|
|
355
338
|
return data;
|
|
356
339
|
}
|
|
357
340
|
renderElement(node, _, templateData) {
|
|
@@ -368,9 +351,9 @@ let RelatedInformationRenderer = class RelatedInformationRenderer {
|
|
|
368
351
|
templateData.description.dispose();
|
|
369
352
|
}
|
|
370
353
|
};
|
|
371
|
-
RelatedInformationRenderer = ( __decorate([
|
|
372
|
-
( __param(0, ILabelService))
|
|
373
|
-
], RelatedInformationRenderer));
|
|
354
|
+
RelatedInformationRenderer = ( (__decorate([
|
|
355
|
+
( (__param(0, ILabelService)))
|
|
356
|
+
], RelatedInformationRenderer)));
|
|
374
357
|
class Filter {
|
|
375
358
|
constructor(options) {
|
|
376
359
|
this.options = options;
|
|
@@ -387,7 +370,7 @@ class Filter {
|
|
|
387
370
|
}
|
|
388
371
|
}
|
|
389
372
|
filterResourceMarkers(resourceMarkers) {
|
|
390
|
-
if (( unsupportedSchemas.has(resourceMarkers.resource.scheme))) {
|
|
373
|
+
if (( (unsupportedSchemas.has(resourceMarkers.resource.scheme)))) {
|
|
391
374
|
return false;
|
|
392
375
|
}
|
|
393
376
|
if (this.options.excludesMatcher.matches(resourceMarkers.resource)) {
|
|
@@ -421,7 +404,7 @@ class Filter {
|
|
|
421
404
|
}
|
|
422
405
|
const sourceMatches = marker.marker.source ? FilterOptions._filter(this.options.textFilter.text, marker.marker.source) : undefined;
|
|
423
406
|
const codeMatches = marker.marker.code ? FilterOptions._filter(this.options.textFilter.text, typeof marker.marker.code === 'string' ? marker.marker.code : marker.marker.code.value) : undefined;
|
|
424
|
-
const matched = sourceMatches || codeMatches || ( lineMatches.some(lineMatch => lineMatch.length > 0));
|
|
407
|
+
const matched = sourceMatches || codeMatches || ( (lineMatches.some(lineMatch => lineMatch.length > 0)));
|
|
425
408
|
if (matched && !this.options.textFilter.negate) {
|
|
426
409
|
return { visibility: true, data: { type: 1 , lineMatches, sourceMatches: sourceMatches || [], codeMatches: codeMatches || [] } };
|
|
427
410
|
}
|
|
@@ -460,7 +443,7 @@ let MarkerViewModel = class MarkerViewModel extends Disposable {
|
|
|
460
443
|
this.instantiationService = instantiationService;
|
|
461
444
|
this.editorService = editorService;
|
|
462
445
|
this.languageFeaturesService = languageFeaturesService;
|
|
463
|
-
this._onDidChange = this._register(( new Emitter()));
|
|
446
|
+
this._onDidChange = this._register(( (new Emitter())));
|
|
464
447
|
this.onDidChange = this._onDidChange.event;
|
|
465
448
|
this.modelPromise = null;
|
|
466
449
|
this.codeActionsPromise = null;
|
|
@@ -507,12 +490,12 @@ let MarkerViewModel = class MarkerViewModel extends Disposable {
|
|
|
507
490
|
if (model) {
|
|
508
491
|
if (!this.codeActionsPromise) {
|
|
509
492
|
this.codeActionsPromise = createCancelablePromise(cancellationToken => {
|
|
510
|
-
return getCodeActions(this.languageFeaturesService.codeActionProvider, model, ( new Range(
|
|
493
|
+
return getCodeActions(this.languageFeaturesService.codeActionProvider, model, ( (new Range(
|
|
511
494
|
this.marker.range.startLineNumber,
|
|
512
495
|
this.marker.range.startColumn,
|
|
513
496
|
this.marker.range.endLineNumber,
|
|
514
497
|
this.marker.range.endColumn
|
|
515
|
-
)), {
|
|
498
|
+
))), {
|
|
516
499
|
type: 1 , triggerAction: CodeActionTriggerSource.ProblemsView, filter: { include: CodeActionKind.QuickFix }
|
|
517
500
|
}, Progress.None, cancellationToken).then(actions => {
|
|
518
501
|
return this._register(actions);
|
|
@@ -525,16 +508,18 @@ let MarkerViewModel = class MarkerViewModel extends Disposable {
|
|
|
525
508
|
});
|
|
526
509
|
}
|
|
527
510
|
toActions(codeActions) {
|
|
528
|
-
return (
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
511
|
+
return (
|
|
512
|
+
(codeActions.validActions.map(item => ( (new Action(
|
|
513
|
+
item.action.command ? item.action.command.id : item.action.title,
|
|
514
|
+
item.action.title,
|
|
515
|
+
undefined,
|
|
516
|
+
true,
|
|
517
|
+
() => {
|
|
518
|
+
return this.openFileAtMarker(this.marker)
|
|
519
|
+
.then(() => this.instantiationService.invokeFunction(applyCodeAction, item, ApplyCodeActionReason.FromProblemsView));
|
|
520
|
+
}
|
|
521
|
+
)))))
|
|
522
|
+
);
|
|
538
523
|
}
|
|
539
524
|
openFileAtMarker(element) {
|
|
540
525
|
const { resource, selection } = { resource: element.resource, selection: element.range };
|
|
@@ -556,13 +541,15 @@ let MarkerViewModel = class MarkerViewModel extends Disposable {
|
|
|
556
541
|
if (waitForModel) {
|
|
557
542
|
if (!this.modelPromise) {
|
|
558
543
|
this.modelPromise = createCancelablePromise(cancellationToken => {
|
|
559
|
-
return (
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
544
|
+
return (
|
|
545
|
+
(new Promise((c) => {
|
|
546
|
+
this._register(this.modelService.onModelAdded(model => {
|
|
547
|
+
if (isEqual(model.uri, this.marker.resource)) {
|
|
548
|
+
c(model);
|
|
549
|
+
}
|
|
550
|
+
}));
|
|
551
|
+
}))
|
|
552
|
+
);
|
|
566
553
|
});
|
|
567
554
|
}
|
|
568
555
|
return this.modelPromise;
|
|
@@ -570,26 +557,26 @@ let MarkerViewModel = class MarkerViewModel extends Disposable {
|
|
|
570
557
|
return Promise.resolve(null);
|
|
571
558
|
}
|
|
572
559
|
};
|
|
573
|
-
MarkerViewModel = ( __decorate([
|
|
574
|
-
( __param(1, IModelService)),
|
|
575
|
-
( __param(2, IInstantiationService)),
|
|
576
|
-
( __param(3, IEditorService)),
|
|
577
|
-
( __param(4, ILanguageFeaturesService))
|
|
578
|
-
], MarkerViewModel));
|
|
560
|
+
MarkerViewModel = ( (__decorate([
|
|
561
|
+
( (__param(1, IModelService))),
|
|
562
|
+
( (__param(2, IInstantiationService))),
|
|
563
|
+
( (__param(3, IEditorService))),
|
|
564
|
+
( (__param(4, ILanguageFeaturesService)))
|
|
565
|
+
], MarkerViewModel)));
|
|
579
566
|
let MarkersViewModel = class MarkersViewModel extends Disposable {
|
|
580
567
|
constructor(multiline = true, viewMode = "tree" , contextKeyService, instantiationService) {
|
|
581
568
|
super();
|
|
582
569
|
this.contextKeyService = contextKeyService;
|
|
583
570
|
this.instantiationService = instantiationService;
|
|
584
|
-
this._onDidChange = this._register(( new Emitter()));
|
|
571
|
+
this._onDidChange = this._register(( (new Emitter())));
|
|
585
572
|
this.onDidChange = this._onDidChange.event;
|
|
586
|
-
this._onDidChangeViewMode = this._register(( new Emitter()));
|
|
573
|
+
this._onDidChangeViewMode = this._register(( (new Emitter())));
|
|
587
574
|
this.onDidChangeViewMode = this._onDidChangeViewMode.event;
|
|
588
|
-
this.markersViewStates = ( new Map());
|
|
589
|
-
this.markersPerResource = ( new Map());
|
|
575
|
+
this.markersViewStates = ( (new Map()));
|
|
576
|
+
this.markersPerResource = ( (new Map()));
|
|
590
577
|
this.bulkUpdate = false;
|
|
591
578
|
this.hoveredMarker = null;
|
|
592
|
-
this.hoverDelayer = ( new Delayer(300));
|
|
579
|
+
this.hoverDelayer = ( (new Delayer(300)));
|
|
593
580
|
this._multiline = true;
|
|
594
581
|
this._viewMode = "tree" ;
|
|
595
582
|
this._multiline = multiline;
|
|
@@ -598,7 +585,7 @@ let MarkersViewModel = class MarkersViewModel extends Disposable {
|
|
|
598
585
|
this.viewModeContextKey.set(viewMode);
|
|
599
586
|
}
|
|
600
587
|
add(marker) {
|
|
601
|
-
if (!( this.markersViewStates.has(marker.id))) {
|
|
588
|
+
if (!( (this.markersViewStates.has(marker.id)))) {
|
|
602
589
|
const viewModel = this.instantiationService.createInstance(MarkerViewModel, marker);
|
|
603
590
|
const disposables = [viewModel];
|
|
604
591
|
viewModel.multiline = this.multiline;
|
|
@@ -608,13 +595,13 @@ let MarkersViewModel = class MarkersViewModel extends Disposable {
|
|
|
608
595
|
}
|
|
609
596
|
}, this, disposables);
|
|
610
597
|
this.markersViewStates.set(marker.id, { viewModel, disposables });
|
|
611
|
-
const markers = this.markersPerResource.get(( marker.resource.toString())) || [];
|
|
598
|
+
const markers = this.markersPerResource.get(( (marker.resource.toString()))) || [];
|
|
612
599
|
markers.push(marker);
|
|
613
|
-
this.markersPerResource.set(( marker.resource.toString()), markers);
|
|
600
|
+
this.markersPerResource.set(( (marker.resource.toString())), markers);
|
|
614
601
|
}
|
|
615
602
|
}
|
|
616
603
|
remove(resource) {
|
|
617
|
-
const markers = this.markersPerResource.get(( resource.toString())) || [];
|
|
604
|
+
const markers = this.markersPerResource.get(( (resource.toString()))) || [];
|
|
618
605
|
for (const marker of markers) {
|
|
619
606
|
const value = this.markersViewStates.get(marker.id);
|
|
620
607
|
if (value) {
|
|
@@ -625,7 +612,7 @@ let MarkersViewModel = class MarkersViewModel extends Disposable {
|
|
|
625
612
|
this.hoveredMarker = null;
|
|
626
613
|
}
|
|
627
614
|
}
|
|
628
|
-
this.markersPerResource.delete(( resource.toString()));
|
|
615
|
+
this.markersPerResource.delete(( (resource.toString())));
|
|
629
616
|
}
|
|
630
617
|
getViewModel(marker) {
|
|
631
618
|
const value = this.markersViewStates.get(marker.id);
|
|
@@ -686,9 +673,9 @@ let MarkersViewModel = class MarkersViewModel extends Disposable {
|
|
|
686
673
|
super.dispose();
|
|
687
674
|
}
|
|
688
675
|
};
|
|
689
|
-
MarkersViewModel = ( __decorate([
|
|
690
|
-
( __param(2, IContextKeyService)),
|
|
691
|
-
( __param(3, IInstantiationService))
|
|
692
|
-
], MarkersViewModel));
|
|
676
|
+
MarkersViewModel = ( (__decorate([
|
|
677
|
+
( (__param(2, IContextKeyService))),
|
|
678
|
+
( (__param(3, IInstantiationService)))
|
|
679
|
+
], MarkersViewModel)));
|
|
693
680
|
|
|
694
681
|
export { Filter, MarkerRenderer, MarkerViewModel, MarkersViewModel, MarkersWidgetAccessibilityProvider, RelatedInformationRenderer, ResourceMarkersRenderer, VirtualDelegate };
|