mirror of
https://github.com/microsoft/vscode.git
synced 2026-07-07 17:44:05 -05:00
marker handler rendering, first cut
This commit is contained in:
@@ -210,6 +210,7 @@ export class MarkerService implements IMarkerService, IThreadSynchronizableObjec
|
||||
resource: key.resource,
|
||||
code: data.code,
|
||||
message: data.message,
|
||||
source: data.source,
|
||||
severity: data.severity,
|
||||
startLineNumber: data.startLineNumber,
|
||||
startColumn: data.startColumn,
|
||||
|
||||
@@ -6,29 +6,23 @@
|
||||
|
||||
import 'vs/css!./media/markerHandler';
|
||||
import {TPromise} from 'vs/base/common/winjs.base';
|
||||
import env = require('vs/base/common/platform');
|
||||
import strings = require('vs/base/common/strings');
|
||||
import network = require('vs/base/common/network');
|
||||
import errors = require('vs/base/common/errors');
|
||||
import paths = require('vs/base/common/paths');
|
||||
import dom = require('vs/base/browser/dom');
|
||||
import * as strings from 'vs/base/common/strings';
|
||||
import * as network from 'vs/base/common/network';
|
||||
import * as errors from 'vs/base/common/errors';
|
||||
import * as paths from 'vs/base/common/paths';
|
||||
import * as dom from 'vs/base/browser/dom';
|
||||
import * as nls from 'vs/nls';
|
||||
import {PathLabelProvider} from 'vs/base/common/labels';
|
||||
import nls = require('vs/nls');
|
||||
import {ITree, IElementCallback} from 'vs/base/parts/tree/common/tree';
|
||||
import severity from 'vs/base/common/severity';
|
||||
import {QuickOpenHandlerDescriptor, IQuickOpenRegistry, Extensions as QuickOpenExtensions, QuickOpenHandler} from 'vs/workbench/browser/quickopen';
|
||||
import Severity from 'vs/base/common/severity';
|
||||
import {QuickOpenHandler} from 'vs/workbench/browser/quickopen';
|
||||
import {QuickOpenAction} from 'vs/workbench/browser/actions/quickOpenAction';
|
||||
import {Mode, IContext, IAutoFocus} from 'vs/base/parts/quickopen/browser/quickOpen';
|
||||
import {QuickOpenEntry, QuickOpenEntryItem, QuickOpenModel} from 'vs/base/parts/quickopen/browser/quickOpenModel';
|
||||
import {Registry} from 'vs/platform/platform';
|
||||
import {SyncActionDescriptor} from 'vs/platform/actions/common/actions';
|
||||
import {IWorkbenchActionRegistry, Extensions as ActionExtensions} from 'vs/workbench/browser/actionRegistry';
|
||||
import {QuickOpenEntryItem, QuickOpenModel} from 'vs/base/parts/quickopen/browser/quickOpenModel';
|
||||
import {IEditorService} from 'vs/platform/editor/common/editor';
|
||||
import {IInstantiationService} from 'vs/platform/instantiation/common/instantiation';
|
||||
import {IMarkerService, IMarker} from 'vs/platform/markers/common/markers';
|
||||
import {IWorkspaceContextService} from 'vs/platform/workspace/common/workspace';
|
||||
import {IQuickOpenService} from 'vs/workbench/services/quickopen/browser/quickOpenService';
|
||||
import {KeyMod, KeyCode} from 'vs/base/common/keyCodes';
|
||||
|
||||
class MarkerEntry extends QuickOpenEntryItem {
|
||||
|
||||
@@ -50,16 +44,20 @@ class MarkerEntry extends QuickOpenEntryItem {
|
||||
public render(tree: ITree, container: HTMLElement, previousCleanupFn: IElementCallback): IElementCallback {
|
||||
dom.clearNode(container);
|
||||
let elements: string[] = [];
|
||||
let {severity, message, source, resource, startLineNumber, startColumn} = this._marker;
|
||||
if (source) {
|
||||
message = `${message} (${source})`;
|
||||
}
|
||||
elements.push('<div class="inline">');
|
||||
elements.push(strings.format('<div class="severity {0}"></div>', severity.toString(this._marker.severity).toLowerCase()));
|
||||
elements.push(strings.format('<div class="severity {0}"></div>', Severity.toString(severity).toLowerCase()));
|
||||
elements.push('</div>');
|
||||
elements.push('<div class="inline entry">');
|
||||
elements.push('<div>');
|
||||
elements.push(strings.format('<span class="message">{0}</span>', this._marker.message));
|
||||
elements.push(strings.format('<span class="message">{0}</span>', message));
|
||||
elements.push('</div>');
|
||||
elements.push('<div>');
|
||||
elements.push(strings.format('<span class="path"><span class="basename">{0} ({1},{2})</span><span class="dirname">{3}</span></span>',
|
||||
paths.basename(this._marker.resource.fsPath), this._marker.startLineNumber, this._marker.startColumn, this._lp.getLabel(paths.dirname(this._marker.resource.fsPath))
|
||||
paths.basename(resource.fsPath), startLineNumber, startColumn, this._lp.getLabel(paths.dirname(resource.fsPath))
|
||||
));
|
||||
elements.push('</div>');
|
||||
elements.push('<div>');
|
||||
@@ -123,7 +121,7 @@ export class MarkersHandler extends QuickOpenHandler {
|
||||
let ret: number;
|
||||
|
||||
// 1st: severity matters first
|
||||
ret = severity.compare(a.severity, b.severity);
|
||||
ret = Severity.compare(a.severity, b.severity);
|
||||
if (ret !== 0) {
|
||||
return ret;
|
||||
}
|
||||
@@ -160,7 +158,7 @@ export class MarkersHandler extends QuickOpenHandler {
|
||||
inputs = [
|
||||
marker.message,
|
||||
marker.resource.fsPath,
|
||||
severity.toString(marker.severity),
|
||||
Severity.toString(marker.severity),
|
||||
String(marker.startLineNumber), String(marker.startColumn), String(marker.endLineNumber), String(marker.endColumn)];
|
||||
|
||||
return inputs.some(input => regexp.test(input));
|
||||
|
||||
Reference in New Issue
Block a user