1
>
/*---------------------------------------------------------------------------------------------
settingsMerge.ts
2
>
* Copyright (c) Microsoft Corporation. All rights reserved.
3
>
* Licensed under the MIT License. See License.txt in the project root for license information.
4
>
*--------------------------------------------------------------------------------------------*/
5
>
6
>
import { distinct } from '../../../base/common/arrays.js';
7
>
import { IStringDictionary } from '../../../base/common/collections.js';
8
>
import { JSONVisitor, parse, visit } from '../../../base/common/json.js';
9
>
import { applyEdits, setProperty, withFormatting } from '../../../base/common/jsonEdit.js';
10
>
import { Edit, FormattingOptions, getEOL } from '../../../base/common/jsonFormatter.js';
11
>
import * as objects from '../../../base/common/objects.js';
12
>
import { IConfigurationService } from '../../configuration/common/configuration.js';
13
>
import * as contentUtil from './content.js';
14
>
import { getDisallowedIgnoredSettings, IConflictSetting } from './userDataSync.js';
15
>
16
>
export interface IMergeResult {
17
>
localContent: string | null;
18
>
remoteContent: string | null;
19
>
hasConflicts: boolean;
20
>
conflictsSettings: IConflictSetting[];
21
>
}
22
>
23
>
export function getIgnoredSettings(defaultIgnoredSettings: string[], configurationService: IConfigurationService, settingsContent?: string): string[] {
24
let value: ReadonlyArray<string> = [];
25
if (settingsContent) {