提交 e980c39e 编写于 作者: J Johannes Rieken

add setting 'problems.showOnFiles'

上级 040f338d
......@@ -16,25 +16,31 @@ import { Registry } from 'vs/platform/registry/common/platform';
import Severity from 'vs/base/common/severity';
import { IThemeService } from 'vs/platform/theme/common/themeService';
import { editorErrorForeground, editorWarningForeground } from 'vs/editor/common/view/editorColorRegistry';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
class MarkersFileDecorations implements IWorkbenchContribution {
private readonly _disposables: IDisposable[];
private readonly _type: DecorationType;
private _markerListener: IDisposable;
constructor(
@IMarkerService private _markerService: IMarkerService,
@IFileDecorationsService private _decorationsService: IFileDecorationsService,
@IThemeService private _themeService: IThemeService
@IThemeService private _themeService: IThemeService,
@IConfigurationService private _configurationService: IConfigurationService
) {
//
this._disposables = [
this._markerService.onMarkerChanged(this._onDidChangeMarker, this),
this._configurationService.onDidUpdateConfiguration(this._updateEnablement, this),
this._type = this._decorationsService.registerDecorationType(localize('errorAndWarnings', "Errors & Warnings"))
];
this._updateEnablement();
}
dispose(): void {
dispose(this._markerListener);
dispose(this._disposables);
}
......@@ -42,6 +48,16 @@ class MarkersFileDecorations implements IWorkbenchContribution {
return 'markers.MarkersFileDecorations';
}
private _updateEnablement(): void {
let value = this._configurationService.getConfiguration<{ showOnFiles: boolean }>('problems');
if (value) {
this._markerListener = this._markerService.onMarkerChanged(this._onDidChangeMarker, this);
this._onDidChangeMarker(this._markerService.read().map(marker => marker.resource));
} else if (this._markerListener) {
this._markerListener.dispose();
}
}
private _onDidChangeMarker(resources: URI[]): void {
for (const resource of resources) {
const markers = this._markerService.read({ resource })
......
......@@ -18,6 +18,7 @@ import { IPanelService } from 'vs/workbench/services/panel/common/panelService';
import { MarkersPanel } from 'vs/workbench/parts/markers/browser/markersPanel';
import './markersFileDecorations';
import { localize } from 'vs/nls';
export function registerContributions(): void {
......@@ -50,6 +51,21 @@ export function registerContributions(): void {
}
});
Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfiguration({
'id': 'problems',
'order': 101,
'type': 'object',
'properties': {
'problems.showOnFiles': {
'description': localize('markers.showOnFile', "Show Errors & Warnings in the file explorer."),
'type': 'boolean',
'default': true
}
}
});
// markers panel
Registry.as<PanelRegistry>(PanelExtensions.Panels).registerPanel(new PanelDescriptor(
MarkersPanel,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册