@difizen/mana-core
Version:
145 lines • 5.32 kB
TypeScript
import type { Event, IStringDictionary } from '@difizen/mana-common';
import type { IJSONSchema } from '../jsonSchema';
export declare const Extensions: {
Configuration: string;
};
export interface IConfigurationRegistry {
/**
* Register a configuration to the registry.
*/
registerConfiguration: (configuration: IConfigurationNode) => void;
/**
* Register multiple configurations to the registry.
*/
registerConfigurations: (configurations: IConfigurationNode[], validate?: boolean) => void;
/**
* Deregister multiple configurations from the registry.
*/
deregisterConfigurations: (configurations: IConfigurationNode[]) => void;
/**
* Register multiple default configurations to the registry.
*/
registerDefaultConfigurations: (defaultConfigurations: IStringDictionary<any>[]) => void;
/**
* Deregister multiple default configurations from the registry.
*/
deregisterDefaultConfigurations: (defaultConfigurations: IStringDictionary<any>[]) => void;
/**
* Signal that the schema of a configuration setting has changes. It is currently only supported to change enumeration values.
* Property or default value changes are not allowed.
*/
notifyConfigurationSchemaUpdated: (...configurations: IConfigurationNode[]) => void;
/**
* Event that fires whenver a configuration has been
* registered.
*/
onDidSchemaChange: Event<void>;
/**
* Event that fires whenver a configuration has been
* registered.
*/
onDidUpdateConfiguration: Event<string[]>;
/**
* Returns all configuration nodes contributed to this registry.
*/
getConfigurations: () => IConfigurationNode[];
/**
* Returns all configurations settings of all configuration nodes contributed to this registry.
*/
getConfigurationProperties: () => Record<string, IConfigurationPropertySchema>;
/**
* Returns all excluded configurations settings of all configuration nodes contributed to this registry.
*/
getExcludedConfigurationProperties: () => Record<string, IConfigurationPropertySchema>;
/**
* Register the identifiers for editor configurations
*/
registerOverrideIdentifiers: (identifiers: string[]) => void;
}
export declare enum ConfigurationScope {
/**
* Application specific configuration, which can be configured only in local user settings.
*/
APPLICATION = 1,
/**
* Machine specific configuration, which can be configured only in local and remote user settings.
*/
MACHINE = 2,
/**
* Window specific configuration, which can be configured in the user or workspace settings.
*/
WINDOW = 3,
/**
* Resource specific configuration, which can be configured in the user, workspace or folder settings.
*/
RESOURCE = 4,
/**
* Resource specific configuration that can be configured in language specific settings
*/
LANGUAGE_OVERRIDABLE = 5,
/**
* Machine specific configuration that can also be configured in workspace or folder settings.
*/
MACHINE_OVERRIDABLE = 6
}
export interface IConfigurationPropertySchema extends IJSONSchema {
scope?: ConfigurationScope | undefined;
included?: boolean;
tags?: string[];
/**
* When enabled this setting is ignored during sync and user can override this.
*/
ignoreSync?: boolean;
/**
* When enabled this setting is ignored during sync and user cannot override this.
*/
disallowSyncIgnore?: boolean;
enumItemLabels?: string[];
}
export interface IConfigurationExtensionInfo {
id: string;
}
export interface IConfigurationNode {
id?: string;
order?: number;
type?: string | string[];
title?: string;
description?: string;
properties?: Record<string, IConfigurationPropertySchema>;
allOf?: IConfigurationNode[];
scope?: ConfigurationScope;
extensionInfo?: IConfigurationExtensionInfo;
}
type SettingProperties = Record<string, any>;
export declare const allSettings: {
properties: SettingProperties;
patternProperties: SettingProperties;
};
export declare const applicationSettings: {
properties: SettingProperties;
patternProperties: SettingProperties;
};
export declare const machineSettings: {
properties: SettingProperties;
patternProperties: SettingProperties;
};
export declare const machineOverridableSettings: {
properties: SettingProperties;
patternProperties: SettingProperties;
};
export declare const windowSettings: {
properties: SettingProperties;
patternProperties: SettingProperties;
};
export declare const resourceSettings: {
properties: SettingProperties;
patternProperties: SettingProperties;
};
export declare const resourceLanguageSettingsSchemaId = "vscode://schemas/settings/resourceLanguage";
export declare const OVERRIDE_PROPERTY_PATTERN: RegExp;
export declare function overrideIdentifierFromKey(key: string): string;
export declare function getDefaultValue(type: string | string[] | undefined): any;
export declare function validateProperty(property: string): string | null;
export declare function getScopes(): [string, ConfigurationScope | undefined][];
export {};
//# sourceMappingURL=configurationRegistry.d.ts.map