提交 185630f9 编写于 作者: J Johannes Rieken

add MarkerSeverity, #44141

上级 0a165e88
......@@ -32,6 +32,14 @@ declare module monaco {
Error = 3,
}
export enum MarkerSeverity {
Hint = 1,
Info = 2,
Warning = 4,
Error = 8,
}
#include(vs/base/common/winjs.base.d.ts): TValueCallback, ProgressCallback, Promise
#include(vs/base/common/cancellation): CancellationTokenSource, CancellationToken
#include(vs/base/common/uri): URI, UriComponents
......
......@@ -46,17 +46,8 @@ namespace Severity {
if (strings.equalsIgnoreCase(_info, value)) {
return Severity.Info;
}
return Severity.Ignore;
}
export function toString(value: Severity): string {
return _displayStrings[value] || strings.empty;
}
export function compare(a: Severity, b: Severity): number {
return b - a;
}
}
export default Severity;
\ No newline at end of file
export default Severity;
......@@ -9,10 +9,9 @@ import network = require('vs/base/common/network');
import Event, { Emitter } from 'vs/base/common/event';
import { MarkdownString } from 'vs/base/common/htmlContent';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import Severity from 'vs/base/common/severity';
import URI from 'vs/base/common/uri';
import { TPromise } from 'vs/base/common/winjs.base';
import { IMarker, IMarkerService } from 'vs/platform/markers/common/markers';
import { IMarker, IMarkerService, MarkerSeverity } from 'vs/platform/markers/common/markers';
import { Range } from 'vs/editor/common/core/range';
import { Selection } from 'vs/editor/common/core/selection';
import { TextModel, createTextBuffer } from 'vs/editor/common/model/textModel';
......@@ -120,20 +119,20 @@ class ModelMarkerHandler {
let darkColor: ThemeColor;
switch (marker.severity) {
case Severity.Ignore:
case MarkerSeverity.Hint:
// do something
break;
case Severity.Warning:
case MarkerSeverity.Warning:
className = ClassName.EditorWarningDecoration;
color = themeColorFromId(overviewRulerWarning);
darkColor = themeColorFromId(overviewRulerWarning);
break;
case Severity.Info:
case MarkerSeverity.Info:
className = ClassName.EditorInfoDecoration;
color = themeColorFromId(overviewRulerInfo);
darkColor = themeColorFromId(overviewRulerInfo);
break;
case Severity.Error:
case MarkerSeverity.Error:
default:
className = ClassName.EditorErrorDecoration;
color = themeColorFromId(overviewRulerError);
......
......@@ -13,6 +13,7 @@ import { TPromise } from 'vs/base/common/winjs.base';
import { CancellationTokenSource } from 'vs/base/common/cancellation';
import { Token } from 'vs/editor/common/core/token';
import URI from 'vs/base/common/uri';
import { MarkerSeverity } from 'vs/platform/markers/common/markers';
// --------------------------------------------
// This is repeated here so it can be exported
......@@ -238,6 +239,7 @@ export function createMonacoBaseAPI(): typeof monaco {
Selection: Selection,
SelectionDirection: SelectionDirection,
Severity: Severity,
MarkerSeverity: MarkerSeverity,
Promise: TPromise,
Uri: <any>URI,
Token: Token
......
......@@ -9,10 +9,9 @@ import * as nls from 'vs/nls';
import { Emitter } from 'vs/base/common/event';
import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import Severity from 'vs/base/common/severity';
import URI from 'vs/base/common/uri';
import { RawContextKey, IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
import { IMarker, IMarkerService } from 'vs/platform/markers/common/markers';
import { IMarker, IMarkerService, MarkerSeverity } from 'vs/platform/markers/common/markers';
import { Position } from 'vs/editor/common/core/position';
import { Range } from 'vs/editor/common/core/range';
import * as editorCommon from 'vs/editor/common/editorCommon';
......@@ -308,7 +307,7 @@ class MarkerNavigationAction extends EditorAction {
return undefined;
}
let oldMarker = model.currentMarker || { resource: editor.getModel().uri, severity: Severity.Error, startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 };
let oldMarker = model.currentMarker || <IMarker>{ resource: editor.getModel().uri, severity: MarkerSeverity.Error, startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 };
let idx = binarySearch(markers, oldMarker, MarkerNavigationAction.compareMarker);
if (idx < 0) {
// find best match...
......@@ -346,7 +345,7 @@ class MarkerNavigationAction extends EditorAction {
static compareMarker(a: IMarker, b: IMarker): number {
let res = compare(a.resource.toString(), b.resource.toString());
if (res === 0) {
res = Severity.compare(a.severity, b.severity);
res = MarkerSeverity.compare(a.severity, b.severity);
}
if (res === 0) {
res = Range.compareRangesUsingStarts(a, b);
......
......@@ -8,9 +8,8 @@
import 'vs/css!./gotoErrorWidget';
import * as nls from 'vs/nls';
import * as dom from 'vs/base/browser/dom';
import Severity from 'vs/base/common/severity';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { IMarker } from 'vs/platform/markers/common/markers';
import { IMarker, MarkerSeverity } from 'vs/platform/markers/common/markers';
import { Position } from 'vs/editor/common/core/position';
import { Range } from 'vs/editor/common/core/range';
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
......@@ -98,7 +97,7 @@ export class MarkerNavigationWidget extends ZoneWidget {
private _title: HTMLElement;
private _message: MessageWidget;
private _callOnDispose: IDisposable[] = [];
private _severity: Severity;
private _severity: MarkerSeverity;
private _backgroundColor: Color;
constructor(
......@@ -106,7 +105,7 @@ export class MarkerNavigationWidget extends ZoneWidget {
private _themeService: IThemeService
) {
super(editor, { showArrow: true, showFrame: true, isAccessible: true });
this._severity = Severity.Warning;
this._severity = MarkerSeverity.Warning;
this._backgroundColor = Color.white;
this._applyTheme(_themeService.getTheme());
......@@ -118,9 +117,9 @@ export class MarkerNavigationWidget extends ZoneWidget {
private _applyTheme(theme: ITheme) {
this._backgroundColor = theme.getColor(editorMarkerNavigationBackground);
let colorId = editorMarkerNavigationError;
if (this._severity === Severity.Warning) {
if (this._severity === MarkerSeverity.Warning) {
colorId = editorMarkerNavigationWarning;
} else if (this._severity === Severity.Info) {
} else if (this._severity === MarkerSeverity.Info) {
colorId = editorMarkerNavigationInfo;
}
let frameColor = theme.getColor(colorId);
......
......@@ -6,13 +6,13 @@
import * as assert from 'assert';
import URI from 'vs/base/common/uri';
import Severity from 'vs/base/common/severity';
import { TextModel } from 'vs/editor/common/model/textModel';
import { CodeActionProviderRegistry, LanguageIdentifier, CodeActionProvider, Command, WorkspaceEdit, ResourceTextEdit, CodeAction, CodeActionContext } from 'vs/editor/common/modes';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { Range } from 'vs/editor/common/core/range';
import { getCodeActions } from 'vs/editor/contrib/quickFix/quickFix';
import { CodeActionKind } from 'vs/editor/contrib/quickFix/codeActionTrigger';
import { MarkerSeverity } from 'vs/platform/markers/common/markers';
suite('QuickFix', () => {
......@@ -29,7 +29,7 @@ suite('QuickFix', () => {
startColumn: 1,
endLineNumber: 2,
endColumn: 1,
severity: Severity.Error,
severity: MarkerSeverity.Error,
message: 'abc'
}]
},
......@@ -40,7 +40,7 @@ suite('QuickFix', () => {
startColumn: 1,
endLineNumber: 2,
endColumn: 1,
severity: Severity.Error,
severity: MarkerSeverity.Error,
message: 'bcd'
}]
}
......
......@@ -32,6 +32,14 @@ declare module monaco {
Error = 3,
}
export enum MarkerSeverity {
Hint = 1,
Info = 2,
Warning = 4,
Error = 8,
}
export type TValueCallback<T = any> = (value: T | PromiseLike<T>) => void;
......@@ -1068,7 +1076,7 @@ declare module monaco.editor {
export interface IMarker {
owner: string;
resource: Uri;
severity: Severity;
severity: MarkerSeverity;
code?: string;
message: string;
source?: string;
......@@ -1084,7 +1092,7 @@ declare module monaco.editor {
*/
export interface IMarkerData {
code?: string;
severity: Severity;
severity: MarkerSeverity;
message: string;
source?: string;
startLineNumber: number;
......
......@@ -10,8 +10,7 @@ import { IDisposable } from 'vs/base/common/lifecycle';
import { isEmptyObject } from 'vs/base/common/types';
import URI from 'vs/base/common/uri';
import Event, { Emitter, debounceEvent } from 'vs/base/common/event';
import Severity from 'vs/base/common/severity';
import { IMarkerService, IMarkerData, IResourceMarker, IMarker, MarkerStatistics } from './markers';
import { IMarkerService, IMarkerData, IResourceMarker, IMarker, MarkerStatistics, MarkerSeverity } from './markers';
interface MapMap<V> {
[key: string]: { [key: string]: V };
......@@ -88,11 +87,11 @@ class MarkerStats implements MarkerStatistics {
}
for (const { severity } of this._service.read({ resource })) {
if (severity === Severity.Error) {
if (severity === MarkerSeverity.Error) {
result.errors += 1;
} else if (severity === Severity.Warning) {
} else if (severity === MarkerSeverity.Warning) {
result.warnings += 1;
} else if (severity === Severity.Info) {
} else if (severity === MarkerSeverity.Info) {
result.infos += 1;
} else {
result.unknowns += 1;
......
......@@ -5,9 +5,10 @@
'use strict';
import URI from 'vs/base/common/uri';
import Severity from 'vs/base/common/severity';
import Event from 'vs/base/common/event';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { localize } from 'vs/nls';
import Severity from 'vs/base/common/severity';
export interface IMarkerService {
_serviceBrand: any;
......@@ -37,12 +38,44 @@ export interface IRelatedInformation {
endColumn: number;
}
export enum MarkerSeverity {
Hint = 1,
Info = 2,
Warning = 4,
Error = 8,
}
export namespace MarkerSeverity {
export function compare(a: MarkerSeverity, b: MarkerSeverity): number {
return b - a;
}
const _displayStrings: { [value: number]: string; } = Object.create(null);
_displayStrings[MarkerSeverity.Error] = localize('sev.error', "Error");
_displayStrings[MarkerSeverity.Warning] = localize('sev.warning', "Warning");
_displayStrings[MarkerSeverity.Info] = localize('sev.info', "Info");
export function toString(a: MarkerSeverity): string {
return _displayStrings[a] || '';
}
export function fromSeverity(severity: Severity): MarkerSeverity {
switch (severity) {
case Severity.Error: return MarkerSeverity.Error;
case Severity.Warning: return MarkerSeverity.Warning;
case Severity.Info: return MarkerSeverity.Info;
case Severity.Ignore: return MarkerSeverity.Hint;
}
}
}
/**
* A structure defining a problem/warning/etc.
*/
export interface IMarkerData {
code?: string;
severity: Severity;
severity: MarkerSeverity;
message: string;
source?: string;
startLineNumber: number;
......@@ -60,7 +93,7 @@ export interface IResourceMarker {
export interface IMarker {
owner: string;
resource: URI;
severity: Severity;
severity: MarkerSeverity;
code?: string;
message: string;
source?: string;
......@@ -93,7 +126,7 @@ export namespace IMarkerData {
result.push(emptyString);
}
if (markerData.severity !== void 0 && markerData.severity !== null) {
result.push(Severity.toString(markerData.severity));
result.push(MarkerSeverity.toString(markerData.severity));
} else {
result.push(emptyString);
}
......
......@@ -5,9 +5,8 @@
'use strict';
import { localize } from 'vs/nls';
import { IMarkerData } from 'vs/platform/markers/common/markers';
import { IMarkerData, MarkerSeverity } from 'vs/platform/markers/common/markers';
import URI from 'vs/base/common/uri';
import Severity from 'vs/base/common/severity';
import * as vscode from 'vscode';
import { MainContext, MainThreadDiagnosticsShape, ExtHostDiagnosticsShape, IMainContext } from './extHost.protocol';
import { DiagnosticSeverity } from './extHostTypes';
......@@ -126,7 +125,7 @@ export class DiagnosticCollection implements vscode.DiagnosticCollection {
// add 'signal' marker for showing omitted errors/warnings
marker.push({
severity: Severity.Error,
severity: MarkerSeverity.Error,
message: localize({ key: 'limitHit', comment: ['amount of errors/warning skipped due to limits'] }, "Not showing {0} further errors and warnings.", diagnostics.length - DiagnosticCollection._maxDiagnosticsPerFile),
startLineNumber: marker[marker.length - 1].startLineNumber,
startColumn: marker[marker.length - 1].startColumn,
......@@ -202,13 +201,13 @@ export class DiagnosticCollection implements vscode.DiagnosticCollection {
};
}
private static _convertDiagnosticsSeverity(severity: number): Severity {
private static _convertDiagnosticsSeverity(severity: number): MarkerSeverity {
switch (severity) {
case 0: return Severity.Error;
case 1: return Severity.Warning;
case 2: return Severity.Info;
case 3: return Severity.Ignore;
default: return Severity.Error;
case 0: return MarkerSeverity.Error;
case 1: return MarkerSeverity.Warning;
case 2: return MarkerSeverity.Info;
case 3: return MarkerSeverity.Hint;
default: return MarkerSeverity.Error;
}
}
......
......@@ -4,7 +4,6 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
import Severity from 'vs/base/common/severity';
import * as modes from 'vs/editor/common/modes';
import * as types from './extHostTypes';
import { Position as EditorPosition, ITextEditorOptions } from 'vs/platform/editor/common/editor';
......@@ -21,6 +20,7 @@ import * as htmlContent from 'vs/base/common/htmlContent';
import { IRelativePattern } from 'vs/base/common/glob';
import { LanguageSelector, LanguageFilter } from 'vs/editor/common/modes/languageSelector';
import { WorkspaceEditDto, ResourceTextEditDto } from 'vs/workbench/api/node/extHost.protocol';
import { MarkerSeverity } from 'vs/platform/markers/common/markers';
export interface PositionLike {
line: number;
......@@ -83,29 +83,29 @@ export function fromPosition(position: types.Position): IPosition {
return { lineNumber: position.line + 1, column: position.character + 1 };
}
export function fromDiagnosticSeverity(value: number): Severity {
export function fromDiagnosticSeverity(value: number): MarkerSeverity {
switch (value) {
case types.DiagnosticSeverity.Error:
return Severity.Error;
return MarkerSeverity.Error;
case types.DiagnosticSeverity.Warning:
return Severity.Warning;
return MarkerSeverity.Warning;
case types.DiagnosticSeverity.Information:
return Severity.Info;
return MarkerSeverity.Info;
case types.DiagnosticSeverity.Hint:
return Severity.Ignore;
return MarkerSeverity.Hint;
}
return Severity.Error;
return MarkerSeverity.Error;
}
export function toDiagnosticSeverty(value: Severity): types.DiagnosticSeverity {
export function toDiagnosticSeverty(value: MarkerSeverity): types.DiagnosticSeverity {
switch (value) {
case Severity.Info:
case MarkerSeverity.Info:
return types.DiagnosticSeverity.Information;
case Severity.Warning:
case MarkerSeverity.Warning:
return types.DiagnosticSeverity.Warning;
case Severity.Error:
case MarkerSeverity.Error:
return types.DiagnosticSeverity.Error;
case Severity.Ignore:
case MarkerSeverity.Hint:
return types.DiagnosticSeverity.Hint;
}
return types.DiagnosticSeverity.Error;
......
......@@ -6,14 +6,13 @@
'use strict';
import { IWorkbenchContribution, IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions';
import { IMarkerService, IMarker } from 'vs/platform/markers/common/markers';
import { IMarkerService, IMarker, MarkerSeverity } from 'vs/platform/markers/common/markers';
import { IDecorationsService, IDecorationsProvider, IDecorationData } from 'vs/workbench/services/decorations/browser/decorations';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import URI from 'vs/base/common/uri';
import Event from 'vs/base/common/event';
import { localize } from 'vs/nls';
import { Registry } from 'vs/platform/registry/common/platform';
import Severity from 'vs/base/common/severity';
import { editorErrorForeground, editorWarningForeground } from 'vs/editor/common/view/editorColorRegistry';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { IConfigurationRegistry, Extensions as ConfigurationExtensions } from 'vs/platform/configuration/common/configurationRegistry';
......@@ -48,7 +47,7 @@ class MarkersDecorationsProvider implements IDecorationsProvider {
bubble: true,
tooltip: markers.length === 1 ? localize('tooltip.1', "1 problem in this file") : localize('tooltip.N', "{0} problems in this file", markers.length),
letter: markers.length < 10 ? markers.length.toString() : '+9',
color: first.severity === Severity.Error ? editorErrorForeground : editorWarningForeground,
color: first.severity === MarkerSeverity.Error ? editorErrorForeground : editorWarningForeground,
};
}
}
......
......@@ -5,10 +5,9 @@
'use strict';
import * as paths from 'vs/base/common/paths';
import Severity from 'vs/base/common/severity';
import URI from 'vs/base/common/uri';
import { Range, IRange } from 'vs/editor/common/core/range';
import { IMarker } from 'vs/platform/markers/common/markers';
import { IMarker, MarkerSeverity } from 'vs/platform/markers/common/markers';
import { IFilter, IMatch, or, matchesContiguousSubString, matchesPrefix, matchesFuzzy } from 'vs/base/common/filters';
import Messages from 'vs/workbench/parts/markers/electron-browser/messages';
import { Schemas } from 'vs/base/common/network';
......@@ -49,7 +48,7 @@ export class Resource {
let [firstMarkerOfB] = b.markers;
let res = 0;
if (firstMarkerOfA && firstMarkerOfB) {
res = Severity.compare(firstMarkerOfA.raw.severity, firstMarkerOfB.raw.severity);
res = MarkerSeverity.compare(firstMarkerOfA.raw.severity, firstMarkerOfB.raw.severity);
}
if (res === 0) {
res = a.path.localeCompare(b.path) || a.name.localeCompare(b.name);
......@@ -80,7 +79,7 @@ export class Marker {
public toString(): string {
return [
`file: '${this.raw.resource}'`,
`severity: '${Severity.toString(this.raw.severity)}'`,
`severity: '${MarkerSeverity.toString(this.raw.severity)}'`,
`message: '${this.raw.message}'`,
`at: '${this.raw.startLineNumber},${this.raw.startColumn}'`,
`source: '${this.raw.source ? this.raw.source : ''}'`,
......@@ -89,7 +88,7 @@ export class Marker {
}
static compare(a: Marker, b: Marker): number {
return Severity.compare(a.raw.severity, b.raw.severity)
return MarkerSeverity.compare(a.raw.severity, b.raw.severity)
|| Range.compareRangesUsingStarts(a.raw, b.raw);
}
}
......@@ -275,13 +274,13 @@ export class MarkersModel {
if (marker.resource.scheme === Schemas.walkThrough || marker.resource.scheme === Schemas.walkThroughSnippet) {
return false;
}
if (this._filterOptions.filterErrors && Severity.Error === marker.severity) {
if (this._filterOptions.filterErrors && MarkerSeverity.Error === marker.severity) {
return true;
}
if (this._filterOptions.filterWarnings && Severity.Warning === marker.severity) {
if (this._filterOptions.filterWarnings && MarkerSeverity.Warning === marker.severity) {
return true;
}
if (this._filterOptions.filterInfos && Severity.Info === marker.severity) {
if (this._filterOptions.filterInfos && MarkerSeverity.Info === marker.severity) {
return true;
}
if (!!FilterOptions._fuzzyFilter(this._filterOptions.filter, marker.message)) {
......
......@@ -8,11 +8,10 @@ import { TPromise, Promise } from 'vs/base/common/winjs.base';
import * as dom from 'vs/base/browser/dom';
import * as network from 'vs/base/common/network';
import { IDataSource, ITree, IRenderer, IAccessibilityProvider, IFilter } from 'vs/base/parts/tree/browser/tree';
import Severity from 'vs/base/common/severity';
import { CountBadge } from 'vs/base/browser/ui/countBadge/countBadge';
import { FileLabel, ResourceLabel } from 'vs/workbench/browser/labels';
import { HighlightedLabel } from 'vs/base/browser/ui/highlightedlabel/highlightedLabel';
import { IMarker } from 'vs/platform/markers/common/markers';
import { IMarker, MarkerSeverity } from 'vs/platform/markers/common/markers';
import { MarkersModel, Resource, Marker } from 'vs/workbench/parts/markers/electron-browser/markersModel';
import Messages from 'vs/workbench/parts/markers/electron-browser/messages';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
......@@ -193,13 +192,13 @@ export class Renderer implements IRenderer {
private static iconClassNameFor(element: IMarker): string {
switch (element.severity) {
case Severity.Ignore:
case MarkerSeverity.Hint:
return 'info';
case Severity.Info:
case MarkerSeverity.Info:
return 'info';
case Severity.Warning:
case MarkerSeverity.Warning:
return 'warning';
case Severity.Error:
case MarkerSeverity.Error:
return 'error';
}
return '';
......
......@@ -5,8 +5,7 @@
'use strict';
import nls = require('vs/nls');
import Severity from 'vs/base/common/severity';
import { IMarker } from 'vs/platform/markers/common/markers';
import { IMarker, MarkerSeverity } from 'vs/platform/markers/common/markers';
export default class Messages {
......@@ -43,14 +42,14 @@ export default class Messages {
public static readonly MARKERS_TREE_ARIA_LABEL_RESOURCE = (fileName: string, noOfProblems: number): string => { return nls.localize('problems.tree.aria.label.resource', "{0} with {1} problems", fileName, noOfProblems); };
public static readonly MARKERS_TREE_ARIA_LABEL_MARKER = (marker: IMarker): string => {
switch (marker.severity) {
case Severity.Error:
case MarkerSeverity.Error:
return marker.source ? nls.localize('problems.tree.aria.label.error.marker', "Error generated by {0}: {1} at line {2} and character {3}", marker.source, marker.message, marker.startLineNumber, marker.startColumn)
: nls.localize('problems.tree.aria.label.error.marker.nosource', "Error: {0} at line {1} and character {2}", marker.message, marker.startLineNumber, marker.startColumn);
case Severity.Warning:
case MarkerSeverity.Warning:
return marker.source ? nls.localize('problems.tree.aria.label.warning.marker', "Warning generated by {0}: {1} at line {2} and character {3}", marker.source, marker.message, marker.startLineNumber, marker.startColumn)
: nls.localize('problems.tree.aria.label.warning.marker.nosource', "Warning: {0} at line {1} and character {2}", marker.message, marker.startLineNumber, marker.startColumn);
case Severity.Info:
case MarkerSeverity.Info:
return marker.source ? nls.localize('problems.tree.aria.label.info.marker', "Info generated by {0}: {1} at line {2} and character {3}", marker.source, marker.message, marker.startLineNumber, marker.startColumn)
: nls.localize('problems.tree.aria.label.info.marker.nosource', "Info: {0} at line {1} and character {2}", marker.message, marker.startLineNumber, marker.startColumn);
default:
......@@ -60,4 +59,4 @@ export default class Messages {
}
public static SHOW_ERRORS_WARNINGS_ACTION_LABEL: string = nls.localize('errors.warnings.show.label', "Show Errors and Warnings");
}
\ No newline at end of file
}
......@@ -7,8 +7,7 @@
import assert = require('assert');
import URI from 'vs/base/common/uri';
import Severity from 'vs/base/common/severity';
import { IMarker } from 'vs/platform/markers/common/markers';
import { IMarker, MarkerSeverity } from 'vs/platform/markers/common/markers';
import { MarkersModel, Marker, Resource } from 'vs/workbench/parts/markers/electron-browser/markersModel';
class TestMarkersModel extends MarkersModel {
......@@ -65,12 +64,12 @@ suite('MarkersModel Test', () => {
});
test('sort palces resources with no errors at the end', function () {
let marker1 = aMarker('a/res1', Severity.Warning);
let marker1 = aMarker('a/res1', MarkerSeverity.Warning);
let marker2 = aMarker('a/res2');
let marker3 = aMarker('res4');
let marker4 = aMarker('b/res3');
let marker5 = aMarker('res4');
let marker6 = aMarker('c/res2', Severity.Info);
let marker6 = aMarker('c/res2', MarkerSeverity.Info);
let testObject = new TestMarkersModel([marker1, marker2, marker3, marker4, marker5, marker6]);
let actuals = testObject.filteredResources.sort(TestMarkersModel.compare);
......@@ -143,9 +142,9 @@ suite('MarkersModel Test', () => {
const res1Marker = aMarker('a/res1');
res1Marker.code = '1234';
assert.equal(`file: 'file:///a/res1'\nseverity: 'Error'\nmessage: 'some message'\nat: '10,5'\nsource: 'tslint'\ncode: '1234'`, new Marker('', res1Marker).toString());
assert.equal(`file: 'file:///a/res2'\nseverity: 'Warning'\nmessage: 'some message'\nat: '10,5'\nsource: 'tslint'\ncode: ''`, new Marker('', aMarker('a/res2', Severity.Warning)).toString());
assert.equal(`file: 'file:///a/res2'\nseverity: 'Info'\nmessage: 'Info'\nat: '1,2'\nsource: ''\ncode: ''`, new Marker('', aMarker('a/res2', Severity.Info, 1, 2, 1, 8, 'Info', '')).toString());
assert.equal(`file: 'file:///a/res2'\nseverity: ''\nmessage: 'Ignore message'\nat: '1,2'\nsource: 'Ignore'\ncode: ''`, new Marker('', aMarker('a/res2', Severity.Ignore, 1, 2, 1, 8, 'Ignore message', 'Ignore')).toString());
assert.equal(`file: 'file:///a/res2'\nseverity: 'Warning'\nmessage: 'some message'\nat: '10,5'\nsource: 'tslint'\ncode: ''`, new Marker('', aMarker('a/res2', MarkerSeverity.Warning)).toString());
assert.equal(`file: 'file:///a/res2'\nseverity: 'Info'\nmessage: 'Info'\nat: '1,2'\nsource: ''\ncode: ''`, new Marker('', aMarker('a/res2', MarkerSeverity.Info, 1, 2, 1, 8, 'Info', '')).toString());
assert.equal(`file: 'file:///a/res2'\nseverity: ''\nmessage: 'Ignore message'\nat: '1,2'\nsource: 'Ignore'\ncode: ''`, new Marker('', aMarker('a/res2', MarkerSeverity.Hint, 1, 2, 1, 8, 'Ignore message', 'Ignore')).toString());
});
function hasMarker(markers: Marker[], marker: IMarker): boolean {
......@@ -164,7 +163,7 @@ suite('MarkersModel Test', () => {
endColumn: number = startColumn + 5,
message: string = 'some message',
): IMarker {
return aMarker('some resource', Severity.Error, startLineNumber, startColumn, endLineNumber, endColumn, message);
return aMarker('some resource', MarkerSeverity.Error, startLineNumber, startColumn, endLineNumber, endColumn, message);
}
function aWarningWithRange(startLineNumber: number = 10,
......@@ -173,7 +172,7 @@ suite('MarkersModel Test', () => {
endColumn: number = startColumn + 5,
message: string = 'some message',
): IMarker {
return aMarker('some resource', Severity.Warning, startLineNumber, startColumn, endLineNumber, endColumn, message);
return aMarker('some resource', MarkerSeverity.Warning, startLineNumber, startColumn, endLineNumber, endColumn, message);
}
function anInfoWithRange(startLineNumber: number = 10,
......@@ -182,7 +181,7 @@ suite('MarkersModel Test', () => {
endColumn: number = startColumn + 5,
message: string = 'some message',
): IMarker {
return aMarker('some resource', Severity.Info, startLineNumber, startColumn, endLineNumber, endColumn, message);
return aMarker('some resource', MarkerSeverity.Info, startLineNumber, startColumn, endLineNumber, endColumn, message);
}
function anIgnoreWithRange(startLineNumber: number = 10,
......@@ -191,11 +190,11 @@ suite('MarkersModel Test', () => {
endColumn: number = startColumn + 5,
message: string = 'some message',
): IMarker {
return aMarker('some resource', Severity.Ignore, startLineNumber, startColumn, endLineNumber, endColumn, message);
return aMarker('some resource', MarkerSeverity.Hint, startLineNumber, startColumn, endLineNumber, endColumn, message);
}
function aMarker(resource: string = 'some resource',
severity: Severity = Severity.Error,
severity: MarkerSeverity = MarkerSeverity.Error,
startLineNumber: number = 10,
startColumn: number = 5,
endLineNumber: number = startLineNumber + 1,
......
......@@ -25,7 +25,7 @@ import { IContextMenuService } from 'vs/platform/contextview/browser/contextView
import { SettingsGroupTitleWidget, EditPreferenceWidget, SettingsHeaderWidget, DefaultSettingsHeaderWidget, FloatingClickWidget } from 'vs/workbench/parts/preferences/browser/preferencesWidgets';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { RangeHighlightDecorations } from 'vs/workbench/browser/parts/editor/rangeDecorations';
import { IMarkerService, IMarkerData } from 'vs/platform/markers/common/markers';
import { IMarkerService, IMarkerData, MarkerSeverity } from 'vs/platform/markers/common/markers';
import { ICursorPositionChangedEvent } from 'vs/editor/common/controller/cursorEvents';
import { ModelDecorationOptions } from 'vs/editor/common/model/textModel';
import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace';
......@@ -40,7 +40,7 @@ import { IssueType, ISettingsSearchIssueReporterData, ISettingSearchResult } fro
import { ILocalExtension } from 'vs/platform/extensionManagement/common/extensionManagement';
import { IWorkbenchIssueService } from 'vs/workbench/services/issue/common/issue';
import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService';
import { INotificationService, Severity } from 'vs/platform/notification/common/notification';
import { INotificationService } from 'vs/platform/notification/common/notification';
import { ContextSubMenu } from 'vs/base/browser/contextmenu';
export interface IPreferencesRenderer<T> extends IDisposable {
......@@ -1355,7 +1355,7 @@ class UnsupportedSettingsRenderer extends Disposable {
// Show warnings for executable settings
if (configurationRegistry[setting.key] && configurationRegistry[setting.key].isExecutable) {
markerData.push({
severity: Severity.Warning,
severity: MarkerSeverity.Warning,
startLineNumber: setting.keyRange.startLineNumber,
startColumn: setting.keyRange.startColumn,
endLineNumber: setting.keyRange.endLineNumber,
......
......@@ -20,7 +20,7 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema';
import { ValidationStatus, ValidationState, IProblemReporter, Parser } from 'vs/base/common/parsers';
import { IStringDictionary } from 'vs/base/common/collections';
import { IMarkerData } from 'vs/platform/markers/common/markers';
import { IMarkerData, MarkerSeverity } from 'vs/platform/markers/common/markers';
import { ExtensionsRegistry, ExtensionMessageCollector } from 'vs/workbench/services/extensions/common/extensionsRegistry';
export enum FileLocationKind {
......@@ -339,7 +339,7 @@ abstract class AbstractLineMatcher implements ILineMatcher {
return { startLineNumber: startLine, startCharacter: 1, endLineNumber: startLine, endCharacter: Number.MAX_VALUE };
}
private getSeverity(data: ProblemData): Severity {
private getSeverity(data: ProblemData): MarkerSeverity {
let result: Severity = null;
if (data.severity) {
let value = data.severity;
......@@ -363,7 +363,7 @@ abstract class AbstractLineMatcher implements ILineMatcher {
if (result === null || result === Severity.Ignore) {
result = this.matcher.severity || Severity.Error;
}
return result;
return MarkerSeverity.fromSeverity(result);
}
}
......
......@@ -7,11 +7,10 @@
import * as assert from 'assert';
import URI, { UriComponents } from 'vs/base/common/uri';
import Severity from 'vs/base/common/severity';
import { DiagnosticCollection } from 'vs/workbench/api/node/extHostDiagnostics';
import { Diagnostic, DiagnosticSeverity, Range } from 'vs/workbench/api/node/extHostTypes';
import { MainThreadDiagnosticsShape } from 'vs/workbench/api/node/extHost.protocol';
import { IMarkerData } from 'vs/platform/markers/common/markers';
import { IMarkerData, MarkerSeverity } from 'vs/platform/markers/common/markers';
import { mock } from 'vs/workbench/test/electron-browser/api/mock';
import { Emitter, toPromise } from 'vs/base/common/event';
......@@ -257,9 +256,9 @@ suite('ExtHostDiagnostics', () => {
assert.equal(collection.get(uri).length, 500);
assert.equal(lastEntries.length, 1);
assert.equal(lastEntries[0][1].length, 251);
assert.equal(lastEntries[0][1][0].severity, Severity.Error);
assert.equal(lastEntries[0][1][200].severity, Severity.Warning);
assert.equal(lastEntries[0][1][250].severity, Severity.Error);
assert.equal(lastEntries[0][1][0].severity, MarkerSeverity.Error);
assert.equal(lastEntries[0][1][200].severity, MarkerSeverity.Warning);
assert.equal(lastEntries[0][1][250].severity, MarkerSeverity.Error);
});
test('diagnostic eventing', async function () {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册