@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.
@@ -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): Promise<void>;
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":"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"}
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
- ProblemsCommands.COPY_MESSAGE = {
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
- ProblemsCommands.SELECT_ALL = {
53
- id: 'problems.select.all'
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
- async selectAllProblems(widget) {
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":"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"}
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
- if (problemMarker.data.severity) {
146
- severityClass = this.getSeverityClass(problemMarker.data.severity);
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
- problemMarker.data.message,
154
- (!!problemMarker.data.source || !!problemMarker.data.code) &&
161
+ data.message,
162
+ (!!data.source || !!data.code) &&
155
163
  React.createElement("span", { className: 'owner ' + browser_1.TREE_NODE_INFO_CLASS },
156
- problemMarker.data.source || '',
157
- problemMarker.data.code ? `(${problemMarker.data.code})` : ''),
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 1: return `${(0, browser_1.codicon)('error')} error`;
165
- case 2: return `${(0, browser_1.codicon)('warning')} warning`;
166
- case 3: return `${(0, browser_1.codicon)('info')} information`;
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":"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"}
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.51+bb9fc73ef",
3
+ "version": "1.74.0-next.58+69b801c9a",
4
4
  "description": "Theia - Markers Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.74.0-next.51+bb9fc73ef",
7
- "@theia/filesystem": "1.74.0-next.51+bb9fc73ef",
8
- "@theia/workspace": "1.74.0-next.51+bb9fc73ef",
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": "bb9fc73ef01cc1add76946df2597681888f6199b"
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: Command = {
52
- id: 'problems.copy'
53
- };
54
- export const COPY_MESSAGE: Command = {
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
- export const SELECT_ALL: Command = {
58
- id: 'problems.select.all'
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 async selectAllProblems(widget: ProblemWidget): Promise<void> {
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
- if (problemMarker.data.severity) {
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={`${problemMarker.data.message} (${problemMarker.data.range.start.line + 1}, ${problemMarker.data.range.start.character + 1})`}>
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'>{problemMarker.data.message}
193
- {(!!problemMarker.data.source || !!problemMarker.data.code) &&
209
+ <div className='message'>{data.message}
210
+ {(!!data.source || !!data.code) &&
194
211
  <span className={'owner ' + TREE_NODE_INFO_CLASS}>
195
- {problemMarker.data.source || ''}
196
- {problemMarker.data.code ? `(${problemMarker.data.code})` : ''}
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 1: return `${codicon('error')} error`;
211
- case 2: return `${codicon('warning')} warning`;
212
- case 3: return `${codicon('info')} information`;
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);