mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-14 03:58:33 -05:00
Merge from vscode e0762af258c0b20320ed03f3871a41967acc4421 (#7404)
* Merge from vscode e0762af258c0b20320ed03f3871a41967acc4421 * readd svgs
This commit is contained in:
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user