Merge from vscode e0762af258c0b20320ed03f3871a41967acc4421 (#7404)

* Merge from vscode e0762af258c0b20320ed03f3871a41967acc4421

* readd svgs
This commit is contained in:
Anthony Dresser
2019-09-27 11:13:19 -07:00
committed by GitHub
parent 6385443a4c
commit 07109617b5
348 changed files with 4219 additions and 4307 deletions

View File

@@ -7,51 +7,76 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'
import { Event } from 'vs/base/common/event';
import { IExtensionIdentifier } from 'vs/platform/extensionManagement/common/extensionManagement';
import { RawContextKey } from 'vs/platform/contextkey/common/contextkey';
import { IStringDictionary } from 'vs/base/common/collections';
import { Registry } from 'vs/platform/registry/common/platform';
import { IConfigurationRegistry, Extensions as ConfigurationExtensions, ConfigurationScope } from 'vs/platform/configuration/common/configurationRegistry';
import { IConfigurationRegistry, Extensions as ConfigurationExtensions, ConfigurationScope, allSettings } from 'vs/platform/configuration/common/configurationRegistry';
import { localize } from 'vs/nls';
import { IDisposable } from 'vs/base/common/lifecycle';
import { IJSONContributionRegistry, Extensions as JSONExtensions } from 'vs/platform/jsonschemas/common/jsonContributionRegistry';
import { IJSONSchema } from 'vs/base/common/jsonSchema';
import { ILogService } from 'vs/platform/log/common/log';
export function registerConfiguration() {
Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration)
.registerConfiguration({
id: 'userConfiguration',
order: 30,
title: localize('userConfiguration', "User Configuration"),
type: 'object',
properties: {
'userConfiguration.enableSync': {
type: 'boolean',
description: localize('userConfiguration.enableSync', "When enabled, synchronises User Configuration: Settings, Keybindings, Extensions & Snippets."),
default: true,
scope: ConfigurationScope.APPLICATION
},
'userConfiguration.syncExtensions': {
type: 'boolean',
description: localize('userConfiguration.syncExtensions', "When enabled extensions are synchronised while synchronising user configuration."),
default: true,
scope: ConfigurationScope.APPLICATION,
},
'userConfiguration.ignoreSettings': {
'type': 'object',
description: localize('userConfiguration.ignoreSettings', "Configure settings to be ignored while syncing"),
'default': {
'userConfiguration.enableSync': true,
'userConfiguration.syncExtensions': true,
'userConfiguration.ignoreSettings': true
},
'scope': ConfigurationScope.APPLICATION,
'additionalProperties': {
'anyOf': [
{
'type': 'boolean',
'description': localize('ignoredSetting', "Id of the stting to be ignored. Set to true or false to enable or disable."),
}
]
}
}
export const DEFAULT_IGNORED_SETTINGS = [
'configurationSync.enable',
'configurationSync.enableSettings',
'configurationSync.enableExtensions',
];
export function registerConfiguration(): IDisposable {
const ignoredSettingsSchemaId = 'vscode://schemas/ignoredSettings';
const configurationRegistry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);
configurationRegistry.registerConfiguration({
id: 'configurationSync',
order: 30,
title: localize('configurationSync', "Configuration Sync"),
type: 'object',
properties: {
'configurationSync.enable': {
type: 'boolean',
description: localize('configurationSync.enable', "When enabled, synchronises configuration that includes Settings and Extensions."),
default: true,
scope: ConfigurationScope.APPLICATION
},
'configurationSync.enableSettings': {
type: 'boolean',
description: localize('configurationSync.enableSettings', "When enabled settings are synchronised while synchronising configuration."),
default: true,
scope: ConfigurationScope.APPLICATION,
},
'configurationSync.enableExtensions': {
type: 'boolean',
description: localize('configurationSync.enableExtensions', "When enabled extensions are synchronised while synchronising configuration."),
default: true,
scope: ConfigurationScope.APPLICATION,
},
'configurationSync.extensionsToIgnore': {
'type': 'array',
description: localize('configurationSync.extensionsToIgnore', "Configure extensions to be ignored while syncing."),
'default': [],
'scope': ConfigurationScope.APPLICATION,
uniqueItems: true
},
'configurationSync.settingsToIgnore': {
'type': 'array',
description: localize('configurationSync.settingsToIgnore', "Configure settings to be ignored while syncing. \nDefault Ignored Settings:\n\n{0}", DEFAULT_IGNORED_SETTINGS.sort().map(setting => `- ${setting}`).join('\n')),
'default': [],
'scope': ConfigurationScope.APPLICATION,
$ref: ignoredSettingsSchemaId,
additionalProperties: true,
uniqueItems: true
}
});
}
});
const registerIgnoredSettingsSchema = () => {
const jsonRegistry = Registry.as<IJSONContributionRegistry>(JSONExtensions.JSONContribution);
const ignoredSettingsSchema: IJSONSchema = {
items: {
type: 'string',
enum: [...Object.keys(allSettings.properties).filter(setting => DEFAULT_IGNORED_SETTINGS.indexOf(setting) === -1), ...DEFAULT_IGNORED_SETTINGS.map(setting => `-${setting}`)]
}
};
jsonRegistry.registerSchema(ignoredSettingsSchemaId, ignoredSettingsSchema);
};
return configurationRegistry.onDidUpdateConfiguration(() => registerIgnoredSettingsSchema());
}
export interface IUserData {
@@ -113,6 +138,7 @@ export interface ISynchroniser {
readonly onDidChangeLocal: Event<void>;
sync(_continue?: boolean): Promise<boolean>;
stop(): void;
}
export const IUserDataSyncService = createDecorator<IUserDataSyncService>('IUserDataSyncService');
@@ -121,7 +147,6 @@ export interface IUserDataSyncService extends ISynchroniser {
_serviceBrand: any;
readonly conflictsSource: SyncSource | null;
getRemoteExtensions(): Promise<ISyncExtension[]>;
removeExtension(identifier: IExtensionIdentifier): Promise<void>;
}
@@ -131,9 +156,15 @@ export interface ISettingsMergeService {
_serviceBrand: undefined;
merge(localContent: string, remoteContent: string, baseContent: string | null, ignoredSettings: IStringDictionary<boolean>): Promise<{ mergeContent: string, hasChanges: boolean, hasConflicts: boolean }>;
merge(localContent: string, remoteContent: string, baseContent: string | null, ignoredSettings: string[]): Promise<{ mergeContent: string, hasChanges: boolean, hasConflicts: boolean }>;
computeRemoteContent(localContent: string, remoteContent: string, ignoredSettings: IStringDictionary<boolean>): Promise<string>;
computeRemoteContent(localContent: string, remoteContent: string, ignoredSettings: string[]): Promise<string>;
}
export const IUserDataSyncLogService = createDecorator<IUserDataSyncLogService>('IUserDataSyncLogService');
export interface IUserDataSyncLogService extends ILogService {
}