提交 efc702c7 编写于 作者: S Sandeep Somavarapu

Implement #49215

上级 2f421308
......@@ -24,6 +24,7 @@ import { WorkspaceEditDto, ResourceTextEditDto, ResourceFileEditDto } from 'vs/w
import { MarkerSeverity, IRelatedInformation, IMarkerData, MarkerTag } from 'vs/platform/markers/common/markers';
import { ACTIVE_GROUP, SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService';
import { ExtHostDocumentsAndEditors } from 'vs/workbench/api/node/extHostDocumentsAndEditors';
import { isString, isNumber } from 'vs/base/common/types';
export interface PositionLike {
line: number;
......@@ -107,7 +108,7 @@ export namespace Diagnostic {
...Range.from(value.range),
message: value.message,
source: value.source,
code: String(value.code),
code: isString(value.code) || isNumber(value.code) ? String(value.code) : void 0,
severity: DiagnosticSeverity.from(value.severity),
relatedInformation: value.relatedInformation && value.relatedInformation.map(DiagnosticRelatedInformation.from),
tags: Array.isArray(value.tags) ? value.tags.map(DiagnosticTag.from) : undefined,
......
......@@ -119,6 +119,7 @@ export class Marker extends NodeWithId {
isSelected: boolean = false;
messageMatches: IMatch[] = [];
sourceMatches: IMatch[] = [];
codeMatches: IMatch[] = [];
resourceRelatedInformation: RelatedInformation[] = [];
constructor(
......@@ -352,6 +353,7 @@ export class MarkersModel {
private updateMarker(marker: Marker, resource: ResourceMarkers): void {
marker.messageMatches = !resource.isExcluded && this._filterOptions.textFilter ? FilterOptions._fuzzyFilter(this._filterOptions.textFilter, marker.raw.message) : [];
marker.sourceMatches = !resource.isExcluded && marker.raw.source && this._filterOptions.textFilter ? FilterOptions._filter(this._filterOptions.textFilter, marker.raw.source) : [];
marker.codeMatches = !resource.isExcluded && marker.raw.code && this._filterOptions.textFilter ? FilterOptions._filter(this._filterOptions.textFilter, marker.raw.code) : [];
marker.resourceRelatedInformation.forEach(r => {
r.uriMatches = !resource.isExcluded && this._filterOptions.textFilter ? FilterOptions._filter(this._filterOptions.textFilter, paths.basename(r.raw.resource.fsPath)) : [];
r.messageMatches = !resource.isExcluded && this._filterOptions.textFilter ? FilterOptions._fuzzyFilter(this._filterOptions.textFilter, r.raw.message) : [];
......@@ -404,6 +406,9 @@ export class MarkersModel {
if (!!marker.source && !!FilterOptions._filter(this._filterOptions.textFilter, marker.source)) {
return true;
}
if (!!marker.code && !!FilterOptions._filter(this._filterOptions.textFilter, marker.code)) {
return true;
}
if (!!marker.relatedInformation && marker.relatedInformation.some(r =>
!!FilterOptions._filter(this._filterOptions.textFilter, paths.basename(r.resource.fsPath)) || !
!FilterOptions._filter(this._filterOptions.textFilter, r.message))) {
......
......@@ -36,6 +36,7 @@ interface IMarkerTemplateData {
source: HighlightedLabel;
description: HighlightedLabel;
lnCol: HTMLElement;
code: HighlightedLabel;
}
interface IRelatedInformationTemplateData {
......@@ -205,6 +206,7 @@ export class Renderer implements IRenderer {
data.icon = dom.append(container, dom.$('.icon'));
data.source = new HighlightedLabel(dom.append(container, dom.$('')));
data.description = new HighlightedLabel(dom.append(container, dom.$('.marker-description')));
data.code = new HighlightedLabel(dom.append(container, dom.$('')));
data.lnCol = dom.append(container, dom.$('span.marker-line'));
return data;
}
......@@ -245,6 +247,9 @@ export class Renderer implements IRenderer {
templateData.description.set(marker.message, element.messageMatches);
templateData.description.element.title = marker.message;
dom.toggleClass(templateData.code.element, 'marker-code', !!marker.code);
templateData.code.set(marker.code || '', element.codeMatches);
templateData.lnCol.textContent = Messages.MARKERS_PANEL_AT_LINE_COL_NUMBER(marker.startLineNumber, marker.startColumn);
}
......
......@@ -114,22 +114,26 @@
overflow: hidden;
}
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .marker-source {
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .marker-source,
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .marker-code {
margin-right: 5px;
}
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .marker-source:before {
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .marker-source:before,
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .marker-code:before {
content: '[';
}
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .marker-source:after {
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .marker-source:after,
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .marker-code:after {
content: ']';
}
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .marker-source,
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .related-info-resource,
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .related-info-resource-separator,
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .marker-line {
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .marker-line,
.markers-panel .markers-panel-container .tree-container .markers-panel-tree-entry .marker-code {
opacity: 0.7;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册