Merge from vscode 718331d6f3ebd1b571530ab499edb266ddd493d5

This commit is contained in:
ADS Merger
2020-02-08 04:50:58 +00:00
parent 8c61538a27
commit 2af13c18d2
752 changed files with 16458 additions and 10063 deletions

View File

@@ -1091,7 +1091,8 @@ class WorkspaceConfigurationRenderer extends Disposable {
private renderingDelayer: Delayer<void> = new Delayer<void>(200);
constructor(private editor: ICodeEditor, private workspaceSettingsEditorModel: SettingsEditorModel,
@IWorkspaceContextService private readonly workspaceContextService: IWorkspaceContextService
@IWorkspaceContextService private readonly workspaceContextService: IWorkspaceContextService,
@IMarkerService private readonly markerService: IMarkerService
) {
super();
this._register(this.editor.getModel()!.onDidChangeContent(() => this.renderingDelayer.trigger(() => this.render(this.associatedSettingsEditorModel))));
@@ -1099,18 +1100,28 @@ class WorkspaceConfigurationRenderer extends Disposable {
render(associatedSettingsEditorModel: IPreferencesEditorModel<ISetting>): void {
this.associatedSettingsEditorModel = associatedSettingsEditorModel;
// Dim other configurations in workspace configuration file only in the context of Settings Editor
if (this.associatedSettingsEditorModel && this.workspaceContextService.getWorkbenchState() === WorkbenchState.WORKSPACE && this.workspaceSettingsEditorModel instanceof WorkspaceConfigurationEditorModel) {
const markerData: IMarkerData[] = [];
if (this.workspaceContextService.getWorkbenchState() === WorkbenchState.WORKSPACE && this.workspaceSettingsEditorModel instanceof WorkspaceConfigurationEditorModel) {
const ranges: IRange[] = [];
for (const settingsGroup of this.workspaceSettingsEditorModel.configurationGroups) {
for (const section of settingsGroup.sections) {
for (const setting of section.settings) {
if (setting.key !== 'settings') {
ranges.push({
startLineNumber: setting.keyRange.startLineNumber,
startColumn: setting.keyRange.startColumn - 1,
endLineNumber: setting.valueRange.endLineNumber,
endColumn: setting.valueRange.endColumn
if (setting.key === 'folders' || setting.key === 'tasks' || setting.key === 'launch' || setting.key === 'extensions') {
if (this.associatedSettingsEditorModel) {
// Dim other configurations in workspace configuration file only in the context of Settings Editor
ranges.push({
startLineNumber: setting.keyRange.startLineNumber,
startColumn: setting.keyRange.startColumn - 1,
endLineNumber: setting.valueRange.endLineNumber,
endColumn: setting.valueRange.endColumn
});
}
} else if (setting.key !== 'settings') {
markerData.push({
severity: MarkerSeverity.Hint,
tags: [MarkerTag.Unnecessary],
...setting.range,
message: nls.localize('unsupportedProperty', "Unsupported Property")
});
}
}
@@ -1118,6 +1129,11 @@ class WorkspaceConfigurationRenderer extends Disposable {
}
this.decorationIds = this.editor.deltaDecorations(this.decorationIds, ranges.map(range => this.createDecoration(range)));
}
if (markerData.length) {
this.markerService.changeOne('preferencesEditor', this.workspaceSettingsEditorModel.uri, markerData);
} else {
this.markerService.remove('preferencesEditor', [this.workspaceSettingsEditorModel.uri]);
}
}
private static readonly _DIM_CONFIGURATION_ = ModelDecorationOptions.register({
@@ -1133,6 +1149,7 @@ class WorkspaceConfigurationRenderer extends Disposable {
}
dispose(): void {
this.markerService.remove('preferencesEditor', [this.workspaceSettingsEditorModel.uri]);
this.decorationIds = this.editor.deltaDecorations(this.decorationIds, []);
super.dispose();
}