@theia/markers 1.74.0-next.51 → 1.74.0-next.58
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/lib/browser/problem/problem-contribution.d.ts +32 -2
- package/lib/browser/problem/problem-contribution.d.ts.map +1 -1
- package/lib/browser/problem/problem-contribution.js +166 -24
- package/lib/browser/problem/problem-contribution.js.map +1 -1
- package/lib/browser/problem/problem-widget.d.ts +16 -1
- package/lib/browser/problem/problem-widget.d.ts.map +1 -1
- package/lib/browser/problem/problem-widget.js +51 -23
- package/lib/browser/problem/problem-widget.js.map +1 -1
- package/package.json +5 -5
- package/src/browser/problem/problem-contribution.ts +179 -26
- package/src/browser/problem/problem-widget.tsx +65 -25
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { FrontendApplication, FrontendApplicationContribution, Widget, TreeNode } from '@theia/core/lib/browser';
|
|
2
|
+
import { MessageService } from '@theia/core/lib/common/message-service';
|
|
2
3
|
import { StatusBar } from '@theia/core/lib/browser/status-bar/status-bar';
|
|
3
4
|
import { AbstractViewContribution } from '@theia/core/lib/browser/shell/view-contribution';
|
|
5
|
+
import { ProblemMarker } from '../../common/problem-marker';
|
|
4
6
|
import { ProblemManager, ProblemStat } from './problem-manager';
|
|
5
7
|
import { ProblemWidget } from './problem-widget';
|
|
6
8
|
import { ProblemTreeModel } from './problem-tree-model';
|
|
@@ -8,23 +10,45 @@ import { MarkerNode } from '../marker-tree';
|
|
|
8
10
|
import { MenuPath, MenuModelRegistry } from '@theia/core/lib/common/menu';
|
|
9
11
|
import { Command, CommandRegistry } from '@theia/core/lib/common/command';
|
|
10
12
|
import { TabBarToolbarContribution, TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
|
|
13
|
+
import { KeybindingContribution, KeybindingRegistry } from '@theia/core/lib/browser/keybinding';
|
|
14
|
+
import { ContextKeyService } from '@theia/core/lib/browser/context-key-service';
|
|
11
15
|
import { ProblemSelection } from './problem-selection';
|
|
16
|
+
import { FileDialogService } from '@theia/filesystem/lib/browser';
|
|
17
|
+
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
12
18
|
export declare const PROBLEMS_CONTEXT_MENU: MenuPath;
|
|
13
19
|
export declare namespace ProblemsMenu {
|
|
14
20
|
const CLIPBOARD: string[];
|
|
15
21
|
const PROBLEMS: string[];
|
|
16
22
|
}
|
|
23
|
+
export interface SerializedProblemMarker {
|
|
24
|
+
resource: string;
|
|
25
|
+
owner: string;
|
|
26
|
+
code?: string | number;
|
|
27
|
+
severity?: number;
|
|
28
|
+
message: string;
|
|
29
|
+
source?: string;
|
|
30
|
+
startLineNumber: number;
|
|
31
|
+
startColumn: number;
|
|
32
|
+
endLineNumber: number;
|
|
33
|
+
endColumn: number;
|
|
34
|
+
}
|
|
17
35
|
export declare namespace ProblemsCommands {
|
|
18
36
|
const COLLAPSE_ALL: Command;
|
|
19
37
|
const COLLAPSE_ALL_TOOLBAR: Command;
|
|
20
38
|
const COPY: Command;
|
|
21
39
|
const COPY_MESSAGE: Command;
|
|
40
|
+
const COPY_AS_TEXT: Command;
|
|
22
41
|
const SELECT_ALL: Command;
|
|
42
|
+
const EXPORT: Command;
|
|
23
43
|
const CLEAR_ALL: Command;
|
|
24
44
|
}
|
|
25
|
-
export declare class ProblemContribution extends AbstractViewContribution<ProblemWidget> implements FrontendApplicationContribution, TabBarToolbarContribution {
|
|
45
|
+
export declare class ProblemContribution extends AbstractViewContribution<ProblemWidget> implements FrontendApplicationContribution, TabBarToolbarContribution, KeybindingContribution {
|
|
26
46
|
protected readonly problemManager: ProblemManager;
|
|
27
47
|
protected readonly statusBar: StatusBar;
|
|
48
|
+
protected readonly fileDialogService: FileDialogService;
|
|
49
|
+
protected readonly fileService: FileService;
|
|
50
|
+
protected readonly contextKeyService: ContextKeyService;
|
|
51
|
+
protected readonly messageService: MessageService;
|
|
28
52
|
constructor();
|
|
29
53
|
onStart(app: FrontendApplication): void;
|
|
30
54
|
initializeLayout(app: FrontendApplication): Promise<void>;
|
|
@@ -43,13 +67,19 @@ export declare class ProblemContribution extends AbstractViewContribution<Proble
|
|
|
43
67
|
registerCommands(commands: CommandRegistry): void;
|
|
44
68
|
registerMenus(menus: MenuModelRegistry): void;
|
|
45
69
|
registerToolbarItems(toolbarRegistry: TabBarToolbarRegistry): Promise<void>;
|
|
70
|
+
registerKeybindings(keybindings: KeybindingRegistry): void;
|
|
46
71
|
protected collapseAllProblems(): Promise<void>;
|
|
47
|
-
protected selectAllProblems(widget: ProblemWidget):
|
|
72
|
+
protected selectAllProblems(widget: ProblemWidget): void;
|
|
48
73
|
protected selectAllNodes(node: TreeNode, model: ProblemTreeModel): void;
|
|
49
74
|
protected getSelectedMarkerNodes(widget: ProblemWidget): MarkerNode[];
|
|
50
75
|
protected addToClipboard(content: string): void;
|
|
51
76
|
protected copy(selections: ProblemSelection | ProblemSelection[]): void;
|
|
52
77
|
protected copyMessage(selections: ProblemSelection | ProblemSelection[]): void;
|
|
78
|
+
protected serializeMarker(marker: ProblemMarker): SerializedProblemMarker;
|
|
79
|
+
protected copyAsText(widget: ProblemWidget, root: TreeNode | undefined, selectedSet: Set<TreeNode>): void;
|
|
80
|
+
protected collectSelectedLinesInOrder(widget: ProblemWidget, node: TreeNode, selectedSet: Set<TreeNode>, lines: string[]): void;
|
|
81
|
+
protected exportProblems(widget: ProblemWidget): Promise<void>;
|
|
82
|
+
protected collectMarkerNodes(nodes: readonly TreeNode[], seen: Set<MarkerNode>): MarkerNode[];
|
|
53
83
|
protected withWidget<T>(widget: Widget | undefined, cb: (problems: ProblemWidget) => T): T | false;
|
|
54
84
|
}
|
|
55
85
|
//# sourceMappingURL=problem-contribution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"problem-contribution.d.ts","sourceRoot":"","sources":["../../../src/browser/problem/problem-contribution.ts"],"names":[],"mappings":"AAkBA,OAAO,EACH,mBAAmB,EAAE,+BAA+B,EAAyC,MAAM,EACnG,QAAQ,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAsB,MAAM,+CAA+C,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"problem-contribution.d.ts","sourceRoot":"","sources":["../../../src/browser/problem/problem-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ const tslib_1 = require("tslib");
|
|
|
20
20
|
const debounce = require("@theia/core/shared/lodash.debounce");
|
|
21
21
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
22
|
const browser_1 = require("@theia/core/lib/browser");
|
|
23
|
+
const message_service_1 = require("@theia/core/lib/common/message-service");
|
|
23
24
|
const status_bar_1 = require("@theia/core/lib/browser/status-bar/status-bar");
|
|
24
25
|
const view_contribution_1 = require("@theia/core/lib/browser/shell/view-contribution");
|
|
25
26
|
const problem_marker_1 = require("../../common/problem-marker");
|
|
@@ -27,7 +28,10 @@ const problem_manager_1 = require("./problem-manager");
|
|
|
27
28
|
const problem_widget_1 = require("./problem-widget");
|
|
28
29
|
const marker_tree_1 = require("../marker-tree");
|
|
29
30
|
const command_1 = require("@theia/core/lib/common/command");
|
|
31
|
+
const context_key_service_1 = require("@theia/core/lib/browser/context-key-service");
|
|
30
32
|
const nls_1 = require("@theia/core/lib/common/nls");
|
|
33
|
+
const browser_2 = require("@theia/filesystem/lib/browser");
|
|
34
|
+
const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
|
|
31
35
|
exports.PROBLEMS_CONTEXT_MENU = [problem_marker_1.PROBLEM_KIND];
|
|
32
36
|
var ProblemsMenu;
|
|
33
37
|
(function (ProblemsMenu) {
|
|
@@ -43,15 +47,32 @@ var ProblemsCommands;
|
|
|
43
47
|
id: 'problems.collapse.all.toolbar',
|
|
44
48
|
iconClass: (0, browser_1.codicon)('collapse-all')
|
|
45
49
|
};
|
|
46
|
-
ProblemsCommands.COPY = {
|
|
47
|
-
id: 'problems.copy'
|
|
48
|
-
|
|
49
|
-
|
|
50
|
+
ProblemsCommands.COPY = command_1.Command.toDefaultLocalizedCommand({
|
|
51
|
+
id: 'problems.copy',
|
|
52
|
+
category: 'Problems',
|
|
53
|
+
label: 'Copy'
|
|
54
|
+
});
|
|
55
|
+
ProblemsCommands.COPY_MESSAGE = command_1.Command.toDefaultLocalizedCommand({
|
|
50
56
|
id: 'problems.copy.message',
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
57
|
+
category: 'Problems',
|
|
58
|
+
label: 'Copy Message'
|
|
59
|
+
});
|
|
60
|
+
ProblemsCommands.COPY_AS_TEXT = command_1.Command.toLocalizedCommand({
|
|
61
|
+
id: 'problems.copy.as.text',
|
|
62
|
+
category: 'Problems',
|
|
63
|
+
label: 'Copy as Text'
|
|
64
|
+
}, 'theia/markers/copyAsText', nls_1.nls.getDefaultKey('Problems'));
|
|
65
|
+
ProblemsCommands.SELECT_ALL = command_1.Command.toDefaultLocalizedCommand({
|
|
66
|
+
id: 'problems.select.all',
|
|
67
|
+
category: 'Problems',
|
|
68
|
+
label: 'Select All'
|
|
69
|
+
});
|
|
70
|
+
ProblemsCommands.EXPORT = command_1.Command.toLocalizedCommand({
|
|
71
|
+
id: 'problems.export',
|
|
72
|
+
category: 'Problems',
|
|
73
|
+
label: 'Export',
|
|
74
|
+
iconClass: (0, browser_1.codicon)('arrow-circle-up')
|
|
75
|
+
}, 'theia/markers/export', nls_1.nls.getDefaultKey('Problems'));
|
|
55
76
|
ProblemsCommands.CLEAR_ALL = command_1.Command.toLocalizedCommand({
|
|
56
77
|
id: 'problems.clear.all',
|
|
57
78
|
category: 'Problems',
|
|
@@ -75,6 +96,12 @@ let ProblemContribution = class ProblemContribution extends view_contribution_1.
|
|
|
75
96
|
onStart(app) {
|
|
76
97
|
this.updateStatusBarElement();
|
|
77
98
|
this.problemManager.onDidChangeMarkers(this.updateStatusBarElement);
|
|
99
|
+
const problemsFocusKey = this.contextKeyService.createKey('problemsFocus', false);
|
|
100
|
+
const updateFocusKey = () => {
|
|
101
|
+
problemsFocusKey.set(this.shell.activeWidget instanceof problem_widget_1.ProblemWidget);
|
|
102
|
+
};
|
|
103
|
+
updateFocusKey();
|
|
104
|
+
this.shell.onDidChangeActiveWidget(updateFocusKey);
|
|
78
105
|
}
|
|
79
106
|
async initializeLayout(app) {
|
|
80
107
|
await this.openView();
|
|
@@ -147,11 +174,28 @@ let ProblemContribution = class ProblemContribution extends view_contribution_1.
|
|
|
147
174
|
}
|
|
148
175
|
})
|
|
149
176
|
});
|
|
177
|
+
commands.registerCommand(ProblemsCommands.COPY_AS_TEXT, {
|
|
178
|
+
isEnabled: () => this.withWidget(undefined, () => true),
|
|
179
|
+
isVisible: () => this.withWidget(undefined, () => true),
|
|
180
|
+
execute: () => this.withWidget(undefined, widget => {
|
|
181
|
+
const selectedSet = new Set(widget.model.selectedNodes);
|
|
182
|
+
if (selectedSet.size > 0) {
|
|
183
|
+
this.copyAsText(widget, widget.model.root, selectedSet);
|
|
184
|
+
}
|
|
185
|
+
})
|
|
186
|
+
});
|
|
150
187
|
commands.registerCommand(ProblemsCommands.SELECT_ALL, {
|
|
151
188
|
isEnabled: () => this.withWidget(undefined, () => true),
|
|
152
189
|
isVisible: () => this.withWidget(undefined, () => true),
|
|
153
190
|
execute: () => this.withWidget(undefined, widget => this.selectAllProblems(widget))
|
|
154
191
|
});
|
|
192
|
+
commands.registerCommand(ProblemsCommands.EXPORT, {
|
|
193
|
+
isEnabled: () => this.withWidget(undefined, () => true),
|
|
194
|
+
isVisible: () => this.withWidget(undefined, () => true),
|
|
195
|
+
execute: async () => {
|
|
196
|
+
await this.withWidget(undefined, async (widget) => await this.exportProblems(widget));
|
|
197
|
+
}
|
|
198
|
+
});
|
|
155
199
|
commands.registerCommand(ProblemsCommands.CLEAR_ALL, {
|
|
156
200
|
isEnabled: widget => this.withWidget(widget, () => true),
|
|
157
201
|
isVisible: widget => this.withWidget(widget, () => true),
|
|
@@ -170,6 +214,14 @@ let ProblemContribution = class ProblemContribution extends view_contribution_1.
|
|
|
170
214
|
label: nls_1.nls.localizeByDefault('Copy Message'),
|
|
171
215
|
order: '1'
|
|
172
216
|
});
|
|
217
|
+
menus.registerMenuAction(ProblemsMenu.CLIPBOARD, {
|
|
218
|
+
commandId: ProblemsCommands.COPY_AS_TEXT.id,
|
|
219
|
+
order: '2'
|
|
220
|
+
});
|
|
221
|
+
menus.registerMenuAction(ProblemsMenu.CLIPBOARD, {
|
|
222
|
+
commandId: ProblemsCommands.EXPORT.id,
|
|
223
|
+
order: '3'
|
|
224
|
+
});
|
|
173
225
|
menus.registerMenuAction(ProblemsMenu.PROBLEMS, {
|
|
174
226
|
commandId: ProblemsCommands.COLLAPSE_ALL.id,
|
|
175
227
|
label: nls_1.nls.localizeByDefault('Collapse All'),
|
|
@@ -195,6 +247,18 @@ let ProblemContribution = class ProblemContribution extends view_contribution_1.
|
|
|
195
247
|
priority: 1,
|
|
196
248
|
});
|
|
197
249
|
}
|
|
250
|
+
registerKeybindings(keybindings) {
|
|
251
|
+
keybindings.registerKeybinding({
|
|
252
|
+
command: ProblemsCommands.COPY_AS_TEXT.id,
|
|
253
|
+
keybinding: 'ctrlcmd+c',
|
|
254
|
+
when: 'problemsFocus'
|
|
255
|
+
});
|
|
256
|
+
keybindings.registerKeybinding({
|
|
257
|
+
command: ProblemsCommands.SELECT_ALL.id,
|
|
258
|
+
keybinding: 'ctrlcmd+a',
|
|
259
|
+
when: 'problemsFocus'
|
|
260
|
+
});
|
|
261
|
+
}
|
|
198
262
|
async collapseAllProblems() {
|
|
199
263
|
const { model } = await this.widget;
|
|
200
264
|
const root = model.root;
|
|
@@ -204,7 +268,7 @@ let ProblemContribution = class ProblemContribution extends view_contribution_1.
|
|
|
204
268
|
model.selectNode(firstChild);
|
|
205
269
|
}
|
|
206
270
|
}
|
|
207
|
-
|
|
271
|
+
selectAllProblems(widget) {
|
|
208
272
|
const { model } = widget;
|
|
209
273
|
const root = model.root;
|
|
210
274
|
if (root) {
|
|
@@ -238,21 +302,7 @@ let ProblemContribution = class ProblemContribution extends view_contribution_1.
|
|
|
238
302
|
}
|
|
239
303
|
copy(selections) {
|
|
240
304
|
const selectionsArray = Array.isArray(selections) ? selections : [selections];
|
|
241
|
-
const serializedProblems = selectionsArray.map(selection =>
|
|
242
|
-
const marker = selection.marker;
|
|
243
|
-
return {
|
|
244
|
-
resource: marker.uri,
|
|
245
|
-
owner: marker.owner,
|
|
246
|
-
code: marker.data.code,
|
|
247
|
-
severity: marker.data.severity,
|
|
248
|
-
message: marker.data.message,
|
|
249
|
-
source: marker.data.source,
|
|
250
|
-
startLineNumber: marker.data.range.start.line,
|
|
251
|
-
startColumn: marker.data.range.start.character,
|
|
252
|
-
endLineNumber: marker.data.range.end.line,
|
|
253
|
-
endColumn: marker.data.range.end.character
|
|
254
|
-
};
|
|
255
|
-
});
|
|
305
|
+
const serializedProblems = selectionsArray.map(selection => this.serializeMarker(selection.marker));
|
|
256
306
|
this.addToClipboard(JSON.stringify(serializedProblems, undefined, '\t'));
|
|
257
307
|
}
|
|
258
308
|
copyMessage(selections) {
|
|
@@ -263,6 +313,82 @@ let ProblemContribution = class ProblemContribution extends view_contribution_1.
|
|
|
263
313
|
});
|
|
264
314
|
this.addToClipboard(messages.join('\n'));
|
|
265
315
|
}
|
|
316
|
+
serializeMarker(marker) {
|
|
317
|
+
return {
|
|
318
|
+
resource: marker.uri,
|
|
319
|
+
owner: marker.owner,
|
|
320
|
+
code: marker.data.code,
|
|
321
|
+
severity: marker.data.severity,
|
|
322
|
+
message: marker.data.message,
|
|
323
|
+
source: marker.data.source,
|
|
324
|
+
startLineNumber: marker.data.range.start.line,
|
|
325
|
+
startColumn: marker.data.range.start.character,
|
|
326
|
+
endLineNumber: marker.data.range.end.line,
|
|
327
|
+
endColumn: marker.data.range.end.character
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
copyAsText(widget, root, selectedSet) {
|
|
331
|
+
const lines = [];
|
|
332
|
+
if (root) {
|
|
333
|
+
this.collectSelectedLinesInOrder(widget, root, selectedSet, lines);
|
|
334
|
+
}
|
|
335
|
+
this.addToClipboard(lines.join('\n'));
|
|
336
|
+
}
|
|
337
|
+
collectSelectedLinesInOrder(widget, node, selectedSet, lines) {
|
|
338
|
+
if (selectedSet.has(node)) {
|
|
339
|
+
if (marker_tree_1.MarkerInfoNode.is(node)) {
|
|
340
|
+
lines.push(widget.formatMarkerFileNodeAsText(node));
|
|
341
|
+
}
|
|
342
|
+
else if (marker_tree_1.MarkerNode.is(node)) {
|
|
343
|
+
lines.push(widget.formatMarkerNodeAsText(node));
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
if (browser_1.CompositeTreeNode.is(node) && node.children) {
|
|
347
|
+
for (const child of node.children) {
|
|
348
|
+
this.collectSelectedLinesInOrder(widget, child, selectedSet, lines);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
async exportProblems(widget) {
|
|
353
|
+
const selectedNodes = widget.model.selectedNodes;
|
|
354
|
+
if (selectedNodes.length === 0) {
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
const markerNodes = this.collectMarkerNodes(selectedNodes, new Set());
|
|
358
|
+
if (markerNodes.length === 0) {
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
const filePath = await this.fileDialogService.showSaveDialog({
|
|
362
|
+
title: nls_1.nls.localize('theia/markers/exportProblems', 'Export Problems'),
|
|
363
|
+
filters: { [nls_1.nls.localize('theia/markers/jsonFiles', 'JSON Files')]: ['json'] },
|
|
364
|
+
saveLabel: nls_1.nls.localize('theia/markers/export', 'Export'),
|
|
365
|
+
inputValue: nls_1.nls.localizeByDefault('Problems').toLowerCase() + '.json'
|
|
366
|
+
});
|
|
367
|
+
if (!filePath) {
|
|
368
|
+
return;
|
|
369
|
+
}
|
|
370
|
+
try {
|
|
371
|
+
const serializedProblems = markerNodes.map(node => this.serializeMarker(node.marker));
|
|
372
|
+
const content = JSON.stringify(serializedProblems, undefined, '\t');
|
|
373
|
+
await this.fileService.write(filePath, content);
|
|
374
|
+
this.messageService.info(nls_1.nls.localize('theia/markers/exportSuccess', 'Problems exported successfully.'));
|
|
375
|
+
}
|
|
376
|
+
catch (error) {
|
|
377
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
378
|
+
this.messageService.error(errorMessage);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
collectMarkerNodes(nodes, seen) {
|
|
382
|
+
for (const node of nodes) {
|
|
383
|
+
if (marker_tree_1.MarkerNode.is(node)) {
|
|
384
|
+
seen.add(node);
|
|
385
|
+
}
|
|
386
|
+
else if (browser_1.CompositeTreeNode.is(node)) {
|
|
387
|
+
this.collectMarkerNodes(node.children, seen);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
return Array.from(seen);
|
|
391
|
+
}
|
|
266
392
|
withWidget(widget = this.tryGetWidget(), cb) {
|
|
267
393
|
if (widget instanceof problem_widget_1.ProblemWidget && widget.id === problem_widget_1.PROBLEMS_WIDGET_ID) {
|
|
268
394
|
return cb(widget);
|
|
@@ -279,6 +405,22 @@ tslib_1.__decorate([
|
|
|
279
405
|
(0, inversify_1.inject)(status_bar_1.StatusBar),
|
|
280
406
|
tslib_1.__metadata("design:type", Object)
|
|
281
407
|
], ProblemContribution.prototype, "statusBar", void 0);
|
|
408
|
+
tslib_1.__decorate([
|
|
409
|
+
(0, inversify_1.inject)(browser_2.FileDialogService),
|
|
410
|
+
tslib_1.__metadata("design:type", Object)
|
|
411
|
+
], ProblemContribution.prototype, "fileDialogService", void 0);
|
|
412
|
+
tslib_1.__decorate([
|
|
413
|
+
(0, inversify_1.inject)(file_service_1.FileService),
|
|
414
|
+
tslib_1.__metadata("design:type", file_service_1.FileService)
|
|
415
|
+
], ProblemContribution.prototype, "fileService", void 0);
|
|
416
|
+
tslib_1.__decorate([
|
|
417
|
+
(0, inversify_1.inject)(context_key_service_1.ContextKeyService),
|
|
418
|
+
tslib_1.__metadata("design:type", Object)
|
|
419
|
+
], ProblemContribution.prototype, "contextKeyService", void 0);
|
|
420
|
+
tslib_1.__decorate([
|
|
421
|
+
(0, inversify_1.inject)(message_service_1.MessageService),
|
|
422
|
+
tslib_1.__metadata("design:type", message_service_1.MessageService)
|
|
423
|
+
], ProblemContribution.prototype, "messageService", void 0);
|
|
282
424
|
exports.ProblemContribution = ProblemContribution = tslib_1.__decorate([
|
|
283
425
|
(0, inversify_1.injectable)(),
|
|
284
426
|
tslib_1.__metadata("design:paramtypes", [])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"problem-contribution.js","sourceRoot":"","sources":["../../../src/browser/problem/problem-contribution.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"problem-contribution.js","sourceRoot":"","sources":["../../../src/browser/problem/problem-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ProblemManager } from './problem-manager';
|
|
2
|
+
import { ProblemMarker } from '../../common/problem-marker';
|
|
2
3
|
import { ProblemTreeModel } from './problem-tree-model';
|
|
3
4
|
import { MarkerInfoNode, MarkerNode } from '../marker-tree';
|
|
4
5
|
import { TreeWidget, TreeProps, ContextMenuRenderer, TreeNode, NodeProps, TreeModel, ApplicationShell, Message } from '@theia/core/lib/browser';
|
|
@@ -7,6 +8,16 @@ import * as React from '@theia/core/shared/react';
|
|
|
7
8
|
import { ProblemPreferences } from '../../common/problem-preferences';
|
|
8
9
|
import { DisposableCollection } from '@theia/core/lib/common/disposable';
|
|
9
10
|
export declare const PROBLEMS_WIDGET_ID = "problems";
|
|
11
|
+
interface MarkerNodeFormatData {
|
|
12
|
+
severityClass: string;
|
|
13
|
+
severityLabel: string;
|
|
14
|
+
message: string;
|
|
15
|
+
line: number;
|
|
16
|
+
column: number;
|
|
17
|
+
location: string;
|
|
18
|
+
source: string;
|
|
19
|
+
code: string;
|
|
20
|
+
}
|
|
10
21
|
export declare class ProblemWidget extends TreeWidget {
|
|
11
22
|
readonly model: ProblemTreeModel;
|
|
12
23
|
protected readonly toDisposeOnCurrentWidgetChanged: DisposableCollection;
|
|
@@ -24,15 +35,18 @@ export declare class ProblemWidget extends TreeWidget {
|
|
|
24
35
|
restoreState(state: object): void;
|
|
25
36
|
protected superRestoreState(state: object): void;
|
|
26
37
|
protected tapNode(node?: TreeNode): void;
|
|
27
|
-
protected handleCopy(event: ClipboardEvent): void;
|
|
28
38
|
protected handleDown(event: KeyboardEvent): void;
|
|
29
39
|
protected handleUp(event: KeyboardEvent): void;
|
|
30
40
|
protected renderTree(model: TreeModel): React.ReactNode;
|
|
31
41
|
protected renderCaption(node: TreeNode, props: NodeProps): React.ReactNode;
|
|
32
42
|
protected renderTailDecorations(node: TreeNode, props: NodeProps): React.JSX.Element;
|
|
33
43
|
protected renderRemoveButton(node: TreeNode): React.ReactNode;
|
|
44
|
+
protected getMarkerNodeFormatData(marker: ProblemMarker): MarkerNodeFormatData;
|
|
34
45
|
protected decorateMarkerNode(node: MarkerNode): React.ReactNode;
|
|
46
|
+
formatMarkerNodeAsText(node: MarkerNode): string;
|
|
47
|
+
protected getSeverityLabel(severity: DiagnosticSeverity): string;
|
|
35
48
|
protected getSeverityClass(severity: DiagnosticSeverity): string;
|
|
49
|
+
formatMarkerFileNodeAsText(node: MarkerInfoNode): string;
|
|
36
50
|
protected decorateMarkerFileNode(node: MarkerInfoNode): React.ReactNode;
|
|
37
51
|
}
|
|
38
52
|
export declare class ProblemMarkerRemoveButton extends React.Component<{
|
|
@@ -43,4 +57,5 @@ export declare class ProblemMarkerRemoveButton extends React.Component<{
|
|
|
43
57
|
protected readonly remove: (e: React.MouseEvent<HTMLElement>) => void;
|
|
44
58
|
protected doRemove(e: React.MouseEvent<HTMLElement>): void;
|
|
45
59
|
}
|
|
60
|
+
export {};
|
|
46
61
|
//# sourceMappingURL=problem-widget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"problem-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/problem/problem-widget.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"problem-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/problem/problem-widget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ const problem_marker_1 = require("../../common/problem-marker");
|
|
|
23
23
|
const problem_tree_model_1 = require("./problem-tree-model");
|
|
24
24
|
const marker_tree_1 = require("../marker-tree");
|
|
25
25
|
const browser_1 = require("@theia/core/lib/browser");
|
|
26
|
+
const vscode_languageserver_protocol_1 = require("@theia/core/shared/vscode-languageserver-protocol");
|
|
26
27
|
const React = require("@theia/core/shared/react");
|
|
27
28
|
const problem_preferences_1 = require("../../common/problem-preferences");
|
|
28
29
|
const disposable_1 = require("@theia/core/lib/common/disposable");
|
|
@@ -39,7 +40,6 @@ let ProblemWidget = class ProblemWidget extends browser_1.TreeWidget {
|
|
|
39
40
|
this.title.iconClass = (0, browser_1.codicon)('warning');
|
|
40
41
|
this.title.closable = true;
|
|
41
42
|
this.addClass('theia-marker-container');
|
|
42
|
-
this.addClipboardListener(this.node, 'copy', e => this.handleCopy(e));
|
|
43
43
|
}
|
|
44
44
|
init() {
|
|
45
45
|
super.init();
|
|
@@ -96,13 +96,6 @@ let ProblemWidget = class ProblemWidget extends browser_1.TreeWidget {
|
|
|
96
96
|
this.model.revealNode(node);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
handleCopy(event) {
|
|
100
|
-
const uris = this.model.selectedNodes.filter(marker_tree_1.MarkerNode.is).map(node => node.uri.toString());
|
|
101
|
-
if (uris.length > 0 && event.clipboardData) {
|
|
102
|
-
event.clipboardData.setData('text/plain', uris.join('\n'));
|
|
103
|
-
event.preventDefault();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
99
|
handleDown(event) {
|
|
107
100
|
const node = this.model.getNextSelectableNode();
|
|
108
101
|
super.handleDown(event);
|
|
@@ -138,35 +131,70 @@ let ProblemWidget = class ProblemWidget extends browser_1.TreeWidget {
|
|
|
138
131
|
renderRemoveButton(node) {
|
|
139
132
|
return React.createElement(ProblemMarkerRemoveButton, { model: this.model, node: node });
|
|
140
133
|
}
|
|
134
|
+
getMarkerNodeFormatData(marker) {
|
|
135
|
+
const line = marker.data.range.start.line + 1;
|
|
136
|
+
const column = marker.data.range.start.character + 1;
|
|
137
|
+
const location = nls_1.nls.localizeByDefault('Ln {0}, Col {1}', line, column);
|
|
138
|
+
const severityClass = marker.data.severity ? this.getSeverityClass(marker.data.severity) : '';
|
|
139
|
+
const severityLabel = marker.data.severity ? this.getSeverityLabel(marker.data.severity) : '';
|
|
140
|
+
const source = marker.data.source ? `${marker.data.source}` : '';
|
|
141
|
+
const code = marker.data.code ? `(${marker.data.code})` : '';
|
|
142
|
+
return {
|
|
143
|
+
severityClass,
|
|
144
|
+
severityLabel,
|
|
145
|
+
message: marker.data.message,
|
|
146
|
+
line,
|
|
147
|
+
column,
|
|
148
|
+
location,
|
|
149
|
+
source,
|
|
150
|
+
code,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
141
153
|
decorateMarkerNode(node) {
|
|
142
154
|
if (problem_marker_1.ProblemMarker.is(node.marker)) {
|
|
143
|
-
let severityClass = '';
|
|
144
155
|
const problemMarker = node.marker;
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
}
|
|
148
|
-
const location = nls_1.nls.localizeByDefault('Ln {0}, Col {1}', problemMarker.data.range.start.line + 1, problemMarker.data.range.start.character + 1);
|
|
149
|
-
return React.createElement("div", { className: 'markerNode', title: `${problemMarker.data.message} (${problemMarker.data.range.start.line + 1}, ${problemMarker.data.range.start.character + 1})` },
|
|
156
|
+
const data = this.getMarkerNodeFormatData(problemMarker);
|
|
157
|
+
return React.createElement("div", { className: 'markerNode', title: `${data.message} (${data.line}, ${data.column})` },
|
|
150
158
|
React.createElement("div", null,
|
|
151
|
-
React.createElement("i", { className: `${severityClass} ${browser_1.TREE_NODE_INFO_CLASS}` })),
|
|
159
|
+
React.createElement("i", { className: `${data.severityClass} ${browser_1.TREE_NODE_INFO_CLASS}` })),
|
|
152
160
|
React.createElement("div", { className: 'message' },
|
|
153
|
-
|
|
154
|
-
(!!
|
|
161
|
+
data.message,
|
|
162
|
+
(!!data.source || !!data.code) &&
|
|
155
163
|
React.createElement("span", { className: 'owner ' + browser_1.TREE_NODE_INFO_CLASS },
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
React.createElement("span", { className: 'position ' + browser_1.TREE_NODE_INFO_CLASS }, `[${location}]`)));
|
|
164
|
+
data.source || '',
|
|
165
|
+
data.code || ''),
|
|
166
|
+
React.createElement("span", { className: 'position ' + browser_1.TREE_NODE_INFO_CLASS }, `[${data.location}]`)));
|
|
159
167
|
}
|
|
160
168
|
return '';
|
|
161
169
|
}
|
|
170
|
+
formatMarkerNodeAsText(node) {
|
|
171
|
+
const marker = node.marker;
|
|
172
|
+
const data = this.getMarkerNodeFormatData(marker);
|
|
173
|
+
const sourceCode = [data.source, data.code].filter(s => s).join(' ');
|
|
174
|
+
const suffix = sourceCode ? ` ${sourceCode}` : '';
|
|
175
|
+
return `${data.severityLabel}: ${data.message}${suffix} [${data.location}]`;
|
|
176
|
+
}
|
|
177
|
+
getSeverityLabel(severity) {
|
|
178
|
+
switch (severity) {
|
|
179
|
+
case vscode_languageserver_protocol_1.DiagnosticSeverity.Error: return nls_1.nls.localizeByDefault('Error');
|
|
180
|
+
case vscode_languageserver_protocol_1.DiagnosticSeverity.Warning: return nls_1.nls.localizeByDefault('Warning');
|
|
181
|
+
case vscode_languageserver_protocol_1.DiagnosticSeverity.Information: return nls_1.nls.localizeByDefault('Info');
|
|
182
|
+
default: return nls_1.nls.localizeByDefault('Hint');
|
|
183
|
+
}
|
|
184
|
+
}
|
|
162
185
|
getSeverityClass(severity) {
|
|
163
186
|
switch (severity) {
|
|
164
|
-
case
|
|
165
|
-
case
|
|
166
|
-
case
|
|
187
|
+
case vscode_languageserver_protocol_1.DiagnosticSeverity.Error: return `${(0, browser_1.codicon)('error')} error`;
|
|
188
|
+
case vscode_languageserver_protocol_1.DiagnosticSeverity.Warning: return `${(0, browser_1.codicon)('warning')} warning`;
|
|
189
|
+
case vscode_languageserver_protocol_1.DiagnosticSeverity.Information: return `${(0, browser_1.codicon)('info')} information`;
|
|
167
190
|
default: return `${(0, browser_1.codicon)('thumbsup')} hint`;
|
|
168
191
|
}
|
|
169
192
|
}
|
|
193
|
+
formatMarkerFileNodeAsText(node) {
|
|
194
|
+
const name = this.toNodeName(node);
|
|
195
|
+
const description = this.toNodeDescription(node);
|
|
196
|
+
return description ? `${name} ${description}` : name;
|
|
197
|
+
}
|
|
170
198
|
decorateMarkerFileNode(node) {
|
|
171
199
|
const icon = this.toNodeIcon(node);
|
|
172
200
|
const name = this.toNodeName(node);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"problem-widget.js","sourceRoot":"","sources":["../../../src/browser/problem/problem-widget.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,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,4DAAiF;AACjF,uDAAmD;AACnD,gEAA4D;AAC5D,6DAAwD;AACxD,gDAA4E;AAC5E,qDAGiC;
|
|
1
|
+
{"version":3,"file":"problem-widget.js","sourceRoot":"","sources":["../../../src/browser/problem/problem-widget.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/markers",
|
|
3
|
-
"version": "1.74.0-next.
|
|
3
|
+
"version": "1.74.0-next.58+69b801c9a",
|
|
4
4
|
"description": "Theia - Markers Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.74.0-next.
|
|
7
|
-
"@theia/filesystem": "1.74.0-next.
|
|
8
|
-
"@theia/workspace": "1.74.0-next.
|
|
6
|
+
"@theia/core": "1.74.0-next.58+69b801c9a",
|
|
7
|
+
"@theia/filesystem": "1.74.0-next.58+69b801c9a",
|
|
8
|
+
"@theia/workspace": "1.74.0-next.58+69b801c9a",
|
|
9
9
|
"tslib": "^2.8.1"
|
|
10
10
|
},
|
|
11
11
|
"publishConfig": {
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"nyc": {
|
|
48
48
|
"extends": "../../configs/nyc.json"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "69b801c9afe89a9cc9a23a6bf63e66bb484bce9a"
|
|
51
51
|
}
|
|
@@ -20,18 +20,23 @@ import {
|
|
|
20
20
|
FrontendApplication, FrontendApplicationContribution, CompositeTreeNode, SelectableTreeNode, Widget, codicon,
|
|
21
21
|
TreeNode, TreeSelection
|
|
22
22
|
} from '@theia/core/lib/browser';
|
|
23
|
+
import { MessageService } from '@theia/core/lib/common/message-service';
|
|
23
24
|
import { StatusBar, StatusBarAlignment } from '@theia/core/lib/browser/status-bar/status-bar';
|
|
24
25
|
import { AbstractViewContribution } from '@theia/core/lib/browser/shell/view-contribution';
|
|
25
26
|
import { PROBLEM_KIND, ProblemMarker } from '../../common/problem-marker';
|
|
26
27
|
import { ProblemManager, ProblemStat } from './problem-manager';
|
|
27
28
|
import { ProblemWidget, PROBLEMS_WIDGET_ID } from './problem-widget';
|
|
28
29
|
import { ProblemTreeModel } from './problem-tree-model';
|
|
29
|
-
import { MarkerNode } from '../marker-tree';
|
|
30
|
+
import { MarkerNode, MarkerInfoNode } from '../marker-tree';
|
|
30
31
|
import { MenuPath, MenuModelRegistry } from '@theia/core/lib/common/menu';
|
|
31
32
|
import { Command, CommandRegistry } from '@theia/core/lib/common/command';
|
|
32
33
|
import { TabBarToolbarContribution, TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
|
|
34
|
+
import { KeybindingContribution, KeybindingRegistry } from '@theia/core/lib/browser/keybinding';
|
|
35
|
+
import { ContextKeyService } from '@theia/core/lib/browser/context-key-service';
|
|
33
36
|
import { ProblemSelection } from './problem-selection';
|
|
34
37
|
import { nls } from '@theia/core/lib/common/nls';
|
|
38
|
+
import { FileDialogService } from '@theia/filesystem/lib/browser';
|
|
39
|
+
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
35
40
|
|
|
36
41
|
export const PROBLEMS_CONTEXT_MENU: MenuPath = [PROBLEM_KIND];
|
|
37
42
|
|
|
@@ -40,6 +45,19 @@ export namespace ProblemsMenu {
|
|
|
40
45
|
export const PROBLEMS = [...PROBLEMS_CONTEXT_MENU, '2_problems'];
|
|
41
46
|
}
|
|
42
47
|
|
|
48
|
+
export interface SerializedProblemMarker {
|
|
49
|
+
resource: string;
|
|
50
|
+
owner: string;
|
|
51
|
+
code?: string | number;
|
|
52
|
+
severity?: number;
|
|
53
|
+
message: string;
|
|
54
|
+
source?: string;
|
|
55
|
+
startLineNumber: number;
|
|
56
|
+
startColumn: number;
|
|
57
|
+
endLineNumber: number;
|
|
58
|
+
endColumn: number;
|
|
59
|
+
}
|
|
60
|
+
|
|
43
61
|
export namespace ProblemsCommands {
|
|
44
62
|
export const COLLAPSE_ALL: Command = {
|
|
45
63
|
id: 'problems.collapse.all'
|
|
@@ -48,15 +66,32 @@ export namespace ProblemsCommands {
|
|
|
48
66
|
id: 'problems.collapse.all.toolbar',
|
|
49
67
|
iconClass: codicon('collapse-all')
|
|
50
68
|
};
|
|
51
|
-
export const COPY
|
|
52
|
-
id: 'problems.copy'
|
|
53
|
-
|
|
54
|
-
|
|
69
|
+
export const COPY = Command.toDefaultLocalizedCommand({
|
|
70
|
+
id: 'problems.copy',
|
|
71
|
+
category: 'Problems',
|
|
72
|
+
label: 'Copy'
|
|
73
|
+
});
|
|
74
|
+
export const COPY_MESSAGE = Command.toDefaultLocalizedCommand({
|
|
55
75
|
id: 'problems.copy.message',
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
76
|
+
category: 'Problems',
|
|
77
|
+
label: 'Copy Message'
|
|
78
|
+
});
|
|
79
|
+
export const COPY_AS_TEXT = Command.toLocalizedCommand({
|
|
80
|
+
id: 'problems.copy.as.text',
|
|
81
|
+
category: 'Problems',
|
|
82
|
+
label: 'Copy as Text'
|
|
83
|
+
}, 'theia/markers/copyAsText', nls.getDefaultKey('Problems'));
|
|
84
|
+
export const SELECT_ALL = Command.toDefaultLocalizedCommand({
|
|
85
|
+
id: 'problems.select.all',
|
|
86
|
+
category: 'Problems',
|
|
87
|
+
label: 'Select All'
|
|
88
|
+
});
|
|
89
|
+
export const EXPORT = Command.toLocalizedCommand({
|
|
90
|
+
id: 'problems.export',
|
|
91
|
+
category: 'Problems',
|
|
92
|
+
label: 'Export',
|
|
93
|
+
iconClass: codicon('arrow-circle-up')
|
|
94
|
+
}, 'theia/markers/export', nls.getDefaultKey('Problems'));
|
|
60
95
|
export const CLEAR_ALL = Command.toLocalizedCommand({
|
|
61
96
|
id: 'problems.clear.all',
|
|
62
97
|
category: 'Problems',
|
|
@@ -66,10 +101,14 @@ export namespace ProblemsCommands {
|
|
|
66
101
|
}
|
|
67
102
|
|
|
68
103
|
@injectable()
|
|
69
|
-
export class ProblemContribution extends AbstractViewContribution<ProblemWidget> implements FrontendApplicationContribution, TabBarToolbarContribution {
|
|
104
|
+
export class ProblemContribution extends AbstractViewContribution<ProblemWidget> implements FrontendApplicationContribution, TabBarToolbarContribution, KeybindingContribution {
|
|
70
105
|
|
|
71
106
|
@inject(ProblemManager) protected readonly problemManager: ProblemManager;
|
|
72
107
|
@inject(StatusBar) protected readonly statusBar: StatusBar;
|
|
108
|
+
@inject(FileDialogService) protected readonly fileDialogService: FileDialogService;
|
|
109
|
+
@inject(FileService) protected readonly fileService: FileService;
|
|
110
|
+
@inject(ContextKeyService) protected readonly contextKeyService: ContextKeyService;
|
|
111
|
+
@inject(MessageService) protected readonly messageService: MessageService;
|
|
73
112
|
|
|
74
113
|
constructor() {
|
|
75
114
|
super({
|
|
@@ -86,6 +125,12 @@ export class ProblemContribution extends AbstractViewContribution<ProblemWidget>
|
|
|
86
125
|
onStart(app: FrontendApplication): void {
|
|
87
126
|
this.updateStatusBarElement();
|
|
88
127
|
this.problemManager.onDidChangeMarkers(this.updateStatusBarElement);
|
|
128
|
+
const problemsFocusKey = this.contextKeyService.createKey<boolean>('problemsFocus', false);
|
|
129
|
+
const updateFocusKey = () => {
|
|
130
|
+
problemsFocusKey.set(this.shell.activeWidget instanceof ProblemWidget);
|
|
131
|
+
};
|
|
132
|
+
updateFocusKey();
|
|
133
|
+
this.shell.onDidChangeActiveWidget(updateFocusKey);
|
|
89
134
|
}
|
|
90
135
|
|
|
91
136
|
async initializeLayout(app: FrontendApplication): Promise<void> {
|
|
@@ -165,11 +210,28 @@ export class ProblemContribution extends AbstractViewContribution<ProblemWidget>
|
|
|
165
210
|
}
|
|
166
211
|
})
|
|
167
212
|
});
|
|
213
|
+
commands.registerCommand(ProblemsCommands.COPY_AS_TEXT, {
|
|
214
|
+
isEnabled: () => this.withWidget(undefined, () => true),
|
|
215
|
+
isVisible: () => this.withWidget(undefined, () => true),
|
|
216
|
+
execute: () => this.withWidget(undefined, widget => {
|
|
217
|
+
const selectedSet = new Set(widget.model.selectedNodes);
|
|
218
|
+
if (selectedSet.size > 0) {
|
|
219
|
+
this.copyAsText(widget, widget.model.root, selectedSet);
|
|
220
|
+
}
|
|
221
|
+
})
|
|
222
|
+
});
|
|
168
223
|
commands.registerCommand(ProblemsCommands.SELECT_ALL, {
|
|
169
224
|
isEnabled: () => this.withWidget(undefined, () => true),
|
|
170
225
|
isVisible: () => this.withWidget(undefined, () => true),
|
|
171
226
|
execute: () => this.withWidget(undefined, widget => this.selectAllProblems(widget))
|
|
172
227
|
});
|
|
228
|
+
commands.registerCommand(ProblemsCommands.EXPORT, {
|
|
229
|
+
isEnabled: () => this.withWidget(undefined, () => true),
|
|
230
|
+
isVisible: () => this.withWidget(undefined, () => true),
|
|
231
|
+
execute: async () => {
|
|
232
|
+
await this.withWidget(undefined, async widget => await this.exportProblems(widget));
|
|
233
|
+
}
|
|
234
|
+
});
|
|
173
235
|
commands.registerCommand(ProblemsCommands.CLEAR_ALL, {
|
|
174
236
|
isEnabled: widget => this.withWidget(widget, () => true),
|
|
175
237
|
isVisible: widget => this.withWidget(widget, () => true),
|
|
@@ -189,6 +251,14 @@ export class ProblemContribution extends AbstractViewContribution<ProblemWidget>
|
|
|
189
251
|
label: nls.localizeByDefault('Copy Message'),
|
|
190
252
|
order: '1'
|
|
191
253
|
});
|
|
254
|
+
menus.registerMenuAction(ProblemsMenu.CLIPBOARD, {
|
|
255
|
+
commandId: ProblemsCommands.COPY_AS_TEXT.id,
|
|
256
|
+
order: '2'
|
|
257
|
+
});
|
|
258
|
+
menus.registerMenuAction(ProblemsMenu.CLIPBOARD, {
|
|
259
|
+
commandId: ProblemsCommands.EXPORT.id,
|
|
260
|
+
order: '3'
|
|
261
|
+
});
|
|
192
262
|
menus.registerMenuAction(ProblemsMenu.PROBLEMS, {
|
|
193
263
|
commandId: ProblemsCommands.COLLAPSE_ALL.id,
|
|
194
264
|
label: nls.localizeByDefault('Collapse All'),
|
|
@@ -216,6 +286,19 @@ export class ProblemContribution extends AbstractViewContribution<ProblemWidget>
|
|
|
216
286
|
});
|
|
217
287
|
}
|
|
218
288
|
|
|
289
|
+
override registerKeybindings(keybindings: KeybindingRegistry): void {
|
|
290
|
+
keybindings.registerKeybinding({
|
|
291
|
+
command: ProblemsCommands.COPY_AS_TEXT.id,
|
|
292
|
+
keybinding: 'ctrlcmd+c',
|
|
293
|
+
when: 'problemsFocus'
|
|
294
|
+
});
|
|
295
|
+
keybindings.registerKeybinding({
|
|
296
|
+
command: ProblemsCommands.SELECT_ALL.id,
|
|
297
|
+
keybinding: 'ctrlcmd+a',
|
|
298
|
+
when: 'problemsFocus'
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
|
|
219
302
|
protected async collapseAllProblems(): Promise<void> {
|
|
220
303
|
const { model } = await this.widget;
|
|
221
304
|
const root = model.root as CompositeTreeNode;
|
|
@@ -226,7 +309,7 @@ export class ProblemContribution extends AbstractViewContribution<ProblemWidget>
|
|
|
226
309
|
}
|
|
227
310
|
}
|
|
228
311
|
|
|
229
|
-
protected
|
|
312
|
+
protected selectAllProblems(widget: ProblemWidget): void {
|
|
230
313
|
const { model } = widget;
|
|
231
314
|
const root = model.root as CompositeTreeNode;
|
|
232
315
|
if (root) {
|
|
@@ -264,21 +347,7 @@ export class ProblemContribution extends AbstractViewContribution<ProblemWidget>
|
|
|
264
347
|
|
|
265
348
|
protected copy(selections: ProblemSelection | ProblemSelection[]): void {
|
|
266
349
|
const selectionsArray = Array.isArray(selections) ? selections : [selections];
|
|
267
|
-
const serializedProblems = selectionsArray.map(selection =>
|
|
268
|
-
const marker = selection.marker as ProblemMarker;
|
|
269
|
-
return {
|
|
270
|
-
resource: marker.uri,
|
|
271
|
-
owner: marker.owner,
|
|
272
|
-
code: marker.data.code,
|
|
273
|
-
severity: marker.data.severity,
|
|
274
|
-
message: marker.data.message,
|
|
275
|
-
source: marker.data.source,
|
|
276
|
-
startLineNumber: marker.data.range.start.line,
|
|
277
|
-
startColumn: marker.data.range.start.character,
|
|
278
|
-
endLineNumber: marker.data.range.end.line,
|
|
279
|
-
endColumn: marker.data.range.end.character
|
|
280
|
-
};
|
|
281
|
-
});
|
|
350
|
+
const serializedProblems = selectionsArray.map(selection => this.serializeMarker(selection.marker as ProblemMarker));
|
|
282
351
|
this.addToClipboard(JSON.stringify(serializedProblems, undefined, '\t'));
|
|
283
352
|
}
|
|
284
353
|
|
|
@@ -291,6 +360,90 @@ export class ProblemContribution extends AbstractViewContribution<ProblemWidget>
|
|
|
291
360
|
this.addToClipboard(messages.join('\n'));
|
|
292
361
|
}
|
|
293
362
|
|
|
363
|
+
protected serializeMarker(marker: ProblemMarker): SerializedProblemMarker {
|
|
364
|
+
return {
|
|
365
|
+
resource: marker.uri,
|
|
366
|
+
owner: marker.owner,
|
|
367
|
+
code: marker.data.code,
|
|
368
|
+
severity: marker.data.severity,
|
|
369
|
+
message: marker.data.message,
|
|
370
|
+
source: marker.data.source,
|
|
371
|
+
startLineNumber: marker.data.range.start.line,
|
|
372
|
+
startColumn: marker.data.range.start.character,
|
|
373
|
+
endLineNumber: marker.data.range.end.line,
|
|
374
|
+
endColumn: marker.data.range.end.character
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
protected copyAsText(widget: ProblemWidget, root: TreeNode | undefined, selectedSet: Set<TreeNode>): void {
|
|
379
|
+
const lines: string[] = [];
|
|
380
|
+
if (root) {
|
|
381
|
+
this.collectSelectedLinesInOrder(widget, root, selectedSet, lines);
|
|
382
|
+
}
|
|
383
|
+
this.addToClipboard(lines.join('\n'));
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
protected collectSelectedLinesInOrder(widget: ProblemWidget, node: TreeNode, selectedSet: Set<TreeNode>, lines: string[]): void {
|
|
387
|
+
if (selectedSet.has(node)) {
|
|
388
|
+
if (MarkerInfoNode.is(node)) {
|
|
389
|
+
lines.push(widget.formatMarkerFileNodeAsText(node));
|
|
390
|
+
} else if (MarkerNode.is(node)) {
|
|
391
|
+
lines.push(widget.formatMarkerNodeAsText(node));
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
if (CompositeTreeNode.is(node) && node.children) {
|
|
395
|
+
for (const child of node.children) {
|
|
396
|
+
this.collectSelectedLinesInOrder(widget, child, selectedSet, lines);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
protected async exportProblems(widget: ProblemWidget): Promise<void> {
|
|
402
|
+
const selectedNodes = widget.model.selectedNodes;
|
|
403
|
+
|
|
404
|
+
if (selectedNodes.length === 0) {
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
const markerNodes = this.collectMarkerNodes(selectedNodes, new Set<MarkerNode>());
|
|
409
|
+
|
|
410
|
+
if (markerNodes.length === 0) {
|
|
411
|
+
return;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
const filePath = await this.fileDialogService.showSaveDialog({
|
|
415
|
+
title: nls.localize('theia/markers/exportProblems', 'Export Problems'),
|
|
416
|
+
filters: { [nls.localize('theia/markers/jsonFiles', 'JSON Files')]: ['json'] },
|
|
417
|
+
saveLabel: nls.localize('theia/markers/export', 'Export'),
|
|
418
|
+
inputValue: nls.localizeByDefault('Problems').toLowerCase() + '.json'
|
|
419
|
+
});
|
|
420
|
+
|
|
421
|
+
if (!filePath) {
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
try {
|
|
426
|
+
const serializedProblems = markerNodes.map(node => this.serializeMarker(node.marker as ProblemMarker));
|
|
427
|
+
const content = JSON.stringify(serializedProblems, undefined, '\t');
|
|
428
|
+
await this.fileService.write(filePath, content);
|
|
429
|
+
this.messageService.info(nls.localize('theia/markers/exportSuccess', 'Problems exported successfully.'));
|
|
430
|
+
} catch (error) {
|
|
431
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
432
|
+
this.messageService.error(errorMessage);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
protected collectMarkerNodes(nodes: readonly TreeNode[], seen: Set<MarkerNode>): MarkerNode[] {
|
|
437
|
+
for (const node of nodes) {
|
|
438
|
+
if (MarkerNode.is(node)) {
|
|
439
|
+
seen.add(node);
|
|
440
|
+
} else if (CompositeTreeNode.is(node)) {
|
|
441
|
+
this.collectMarkerNodes(node.children, seen);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
return Array.from(seen);
|
|
445
|
+
}
|
|
446
|
+
|
|
294
447
|
protected withWidget<T>(widget: Widget | undefined = this.tryGetWidget(), cb: (problems: ProblemWidget) => T): T | false {
|
|
295
448
|
if (widget instanceof ProblemWidget && widget.id === PROBLEMS_WIDGET_ID) {
|
|
296
449
|
return cb(widget);
|
|
@@ -31,6 +31,17 @@ import { nls } from '@theia/core/lib/common/nls';
|
|
|
31
31
|
|
|
32
32
|
export const PROBLEMS_WIDGET_ID = 'problems';
|
|
33
33
|
|
|
34
|
+
interface MarkerNodeFormatData {
|
|
35
|
+
severityClass: string;
|
|
36
|
+
severityLabel: string;
|
|
37
|
+
message: string;
|
|
38
|
+
line: number;
|
|
39
|
+
column: number;
|
|
40
|
+
location: string;
|
|
41
|
+
source: string;
|
|
42
|
+
code: string;
|
|
43
|
+
}
|
|
44
|
+
|
|
34
45
|
@injectable()
|
|
35
46
|
export class ProblemWidget extends TreeWidget {
|
|
36
47
|
|
|
@@ -58,8 +69,6 @@ export class ProblemWidget extends TreeWidget {
|
|
|
58
69
|
this.title.iconClass = codicon('warning');
|
|
59
70
|
this.title.closable = true;
|
|
60
71
|
this.addClass('theia-marker-container');
|
|
61
|
-
|
|
62
|
-
this.addClipboardListener(this.node, 'copy', e => this.handleCopy(e));
|
|
63
72
|
}
|
|
64
73
|
|
|
65
74
|
@postConstruct()
|
|
@@ -125,14 +134,6 @@ export class ProblemWidget extends TreeWidget {
|
|
|
125
134
|
}
|
|
126
135
|
}
|
|
127
136
|
|
|
128
|
-
protected handleCopy(event: ClipboardEvent): void {
|
|
129
|
-
const uris = this.model.selectedNodes.filter(MarkerNode.is).map(node => node.uri.toString());
|
|
130
|
-
if (uris.length > 0 && event.clipboardData) {
|
|
131
|
-
event.clipboardData.setData('text/plain', uris.join('\n'));
|
|
132
|
-
event.preventDefault();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
137
|
protected override handleDown(event: KeyboardEvent): void {
|
|
137
138
|
const node = this.model.getNextSelectableNode();
|
|
138
139
|
super.handleDown(event);
|
|
@@ -175,29 +176,45 @@ export class ProblemWidget extends TreeWidget {
|
|
|
175
176
|
return <ProblemMarkerRemoveButton model={this.model} node={node} />;
|
|
176
177
|
}
|
|
177
178
|
|
|
179
|
+
protected getMarkerNodeFormatData(marker: ProblemMarker): MarkerNodeFormatData {
|
|
180
|
+
const line = marker.data.range.start.line + 1;
|
|
181
|
+
const column = marker.data.range.start.character + 1;
|
|
182
|
+
const location = nls.localizeByDefault('Ln {0}, Col {1}', line, column);
|
|
183
|
+
const severityClass = marker.data.severity ? this.getSeverityClass(marker.data.severity) : '';
|
|
184
|
+
const severityLabel = marker.data.severity ? this.getSeverityLabel(marker.data.severity) : '';
|
|
185
|
+
const source = marker.data.source ? `${marker.data.source}` : '';
|
|
186
|
+
const code = marker.data.code ? `(${marker.data.code})` : '';
|
|
187
|
+
return {
|
|
188
|
+
severityClass,
|
|
189
|
+
severityLabel,
|
|
190
|
+
message: marker.data.message,
|
|
191
|
+
line,
|
|
192
|
+
column,
|
|
193
|
+
location,
|
|
194
|
+
source,
|
|
195
|
+
code,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
|
|
178
199
|
protected decorateMarkerNode(node: MarkerNode): React.ReactNode {
|
|
179
200
|
if (ProblemMarker.is(node.marker)) {
|
|
180
|
-
let severityClass: string = '';
|
|
181
201
|
const problemMarker = node.marker;
|
|
182
|
-
|
|
183
|
-
severityClass = this.getSeverityClass(problemMarker.data.severity);
|
|
184
|
-
}
|
|
185
|
-
const location = nls.localizeByDefault('Ln {0}, Col {1}', problemMarker.data.range.start.line + 1, problemMarker.data.range.start.character + 1);
|
|
202
|
+
const data = this.getMarkerNodeFormatData(problemMarker);
|
|
186
203
|
return <div
|
|
187
204
|
className='markerNode'
|
|
188
|
-
title={`${
|
|
205
|
+
title={`${data.message} (${data.line}, ${data.column})`}>
|
|
189
206
|
<div>
|
|
190
|
-
<i className={`${severityClass} ${TREE_NODE_INFO_CLASS}`}></i>
|
|
207
|
+
<i className={`${data.severityClass} ${TREE_NODE_INFO_CLASS}`}></i>
|
|
191
208
|
</div>
|
|
192
|
-
<div className='message'>{
|
|
193
|
-
{(!!
|
|
209
|
+
<div className='message'>{data.message}
|
|
210
|
+
{(!!data.source || !!data.code) &&
|
|
194
211
|
<span className={'owner ' + TREE_NODE_INFO_CLASS}>
|
|
195
|
-
{
|
|
196
|
-
{
|
|
212
|
+
{data.source || ''}
|
|
213
|
+
{data.code || ''}
|
|
197
214
|
</span>
|
|
198
215
|
}
|
|
199
216
|
<span className={'position ' + TREE_NODE_INFO_CLASS}>
|
|
200
|
-
{`[${location}]`}
|
|
217
|
+
{`[${data.location}]`}
|
|
201
218
|
</span>
|
|
202
219
|
</div>
|
|
203
220
|
</div>;
|
|
@@ -205,15 +222,38 @@ export class ProblemWidget extends TreeWidget {
|
|
|
205
222
|
return '';
|
|
206
223
|
}
|
|
207
224
|
|
|
225
|
+
formatMarkerNodeAsText(node: MarkerNode): string {
|
|
226
|
+
const marker = node.marker as ProblemMarker;
|
|
227
|
+
const data = this.getMarkerNodeFormatData(marker);
|
|
228
|
+
const sourceCode = [data.source, data.code].filter(s => s).join(' ');
|
|
229
|
+
const suffix = sourceCode ? ` ${sourceCode}` : '';
|
|
230
|
+
return `${data.severityLabel}: ${data.message}${suffix} [${data.location}]`;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
protected getSeverityLabel(severity: DiagnosticSeverity): string {
|
|
234
|
+
switch (severity) {
|
|
235
|
+
case DiagnosticSeverity.Error: return nls.localizeByDefault('Error');
|
|
236
|
+
case DiagnosticSeverity.Warning: return nls.localizeByDefault('Warning');
|
|
237
|
+
case DiagnosticSeverity.Information: return nls.localizeByDefault('Info');
|
|
238
|
+
default: return nls.localizeByDefault('Hint');
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
208
242
|
protected getSeverityClass(severity: DiagnosticSeverity): string {
|
|
209
243
|
switch (severity) {
|
|
210
|
-
case
|
|
211
|
-
case
|
|
212
|
-
case
|
|
244
|
+
case DiagnosticSeverity.Error: return `${codicon('error')} error`;
|
|
245
|
+
case DiagnosticSeverity.Warning: return `${codicon('warning')} warning`;
|
|
246
|
+
case DiagnosticSeverity.Information: return `${codicon('info')} information`;
|
|
213
247
|
default: return `${codicon('thumbsup')} hint`;
|
|
214
248
|
}
|
|
215
249
|
}
|
|
216
250
|
|
|
251
|
+
formatMarkerFileNodeAsText(node: MarkerInfoNode): string {
|
|
252
|
+
const name = this.toNodeName(node);
|
|
253
|
+
const description = this.toNodeDescription(node);
|
|
254
|
+
return description ? `${name} ${description}` : name;
|
|
255
|
+
}
|
|
256
|
+
|
|
217
257
|
protected decorateMarkerFileNode(node: MarkerInfoNode): React.ReactNode {
|
|
218
258
|
const icon = this.toNodeIcon(node);
|
|
219
259
|
const name = this.toNodeName(node);
|