@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
213 lines (211 loc) • 8.78 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { IStringDictionary } from '@sussudio/base/common/collections.mjs';
import { Emitter, Event } from '@sussudio/base/common/event.mjs';
import { Disposable } from '@sussudio/base/common/lifecycle.mjs';
import { ResourceMap } from '@sussudio/base/common/map.mjs';
import { IExtUri } from '@sussudio/base/common/resources.mjs';
import { URI } from '@sussudio/base/common/uri.mjs';
import {
ConfigurationTarget,
IConfigurationChange,
IConfigurationChangeEvent,
IConfigurationData,
IConfigurationModel,
IConfigurationOverrides,
IConfigurationUpdateOverrides,
IConfigurationValue,
IOverrides,
} from './configuration.mjs';
import { ConfigurationScope } from './configurationRegistry.mjs';
import { IFileService } from '../../files/common/files.mjs';
import { Workspace } from '../../workspace/common/workspace.mjs';
export interface IInspectValue<V> {
value?: V;
override?: V;
merged?: V;
}
export declare class ConfigurationModel implements IConfigurationModel {
private readonly _contents;
private readonly _keys;
private readonly _overrides;
readonly raw?: readonly (IStringDictionary<any> | ConfigurationModel)[] | undefined;
private frozen;
private readonly overrideConfigurations;
constructor(
_contents?: any,
_keys?: string[],
_overrides?: IOverrides[],
raw?: readonly (IStringDictionary<any> | ConfigurationModel)[] | undefined,
);
private _rawConfiguration;
get rawConfiguration(): ConfigurationModel;
get contents(): any;
get overrides(): IOverrides[];
get keys(): string[];
isEmpty(): boolean;
isFrozen(): boolean;
getValue<V>(section: string | undefined): V;
inspect<V>(section: string | undefined, overrideIdentifier?: string | null): IInspectValue<V>;
getOverrideValue<V>(section: string | undefined, overrideIdentifier: string): V | undefined;
getKeysForOverrideIdentifier(identifier: string): string[];
getAllOverrideIdentifiers(): string[];
override(identifier: string): ConfigurationModel;
merge(...others: ConfigurationModel[]): ConfigurationModel;
freeze(): ConfigurationModel;
private createOverrideConfigurationModel;
private mergeContents;
private checkAndFreeze;
private getContentsForOverrideIdentifer;
toJSON(): IConfigurationModel;
setValue(key: string, value: any): void;
removeValue(key: string): void;
private addKey;
private removeKey;
}
export interface ConfigurationParseOptions {
scopes: ConfigurationScope[] | undefined;
skipRestricted?: boolean;
}
export declare class ConfigurationModelParser {
protected readonly _name: string;
private _raw;
private _configurationModel;
private _restrictedConfigurations;
private _parseErrors;
constructor(_name: string);
get configurationModel(): ConfigurationModel;
get restrictedConfigurations(): string[];
get errors(): any[];
parse(content: string | null | undefined, options?: ConfigurationParseOptions): void;
reparse(options: ConfigurationParseOptions): void;
parseRaw(raw: any, options?: ConfigurationParseOptions): void;
private doParseContent;
protected doParseRaw(
raw: any,
options?: ConfigurationParseOptions,
): IConfigurationModel & {
restricted?: string[];
hasExcludedProperties?: boolean;
};
private filter;
private toOverrides;
}
export declare class UserSettings extends Disposable {
private readonly userSettingsResource;
private readonly scopes;
private readonly fileService;
private readonly parser;
private readonly parseOptions;
protected readonly _onDidChange: Emitter<void>;
readonly onDidChange: Event<void>;
constructor(
userSettingsResource: URI,
scopes: ConfigurationScope[] | undefined,
extUri: IExtUri,
fileService: IFileService,
);
loadConfiguration(): Promise<ConfigurationModel>;
reparse(): ConfigurationModel;
getRestrictedSettings(): string[];
}
export declare class Configuration {
private _defaultConfiguration;
private _policyConfiguration;
private _applicationConfiguration;
private _localUserConfiguration;
private _remoteUserConfiguration;
private _workspaceConfiguration;
private _folderConfigurations;
private _memoryConfiguration;
private _memoryConfigurationByResource;
private _freeze;
private _workspaceConsolidatedConfiguration;
private _foldersConsolidatedConfigurations;
constructor(
_defaultConfiguration: ConfigurationModel,
_policyConfiguration: ConfigurationModel,
_applicationConfiguration: ConfigurationModel,
_localUserConfiguration: ConfigurationModel,
_remoteUserConfiguration?: ConfigurationModel,
_workspaceConfiguration?: ConfigurationModel,
_folderConfigurations?: ResourceMap<ConfigurationModel>,
_memoryConfiguration?: ConfigurationModel,
_memoryConfigurationByResource?: ResourceMap<ConfigurationModel>,
_freeze?: boolean,
);
getValue(section: string | undefined, overrides: IConfigurationOverrides, workspace: Workspace | undefined): any;
updateValue(key: string, value: any, overrides?: IConfigurationUpdateOverrides): void;
inspect<C>(key: string, overrides: IConfigurationOverrides, workspace: Workspace | undefined): IConfigurationValue<C>;
keys(workspace: Workspace | undefined): {
default: string[];
user: string[];
workspace: string[];
workspaceFolder: string[];
};
updateDefaultConfiguration(defaultConfiguration: ConfigurationModel): void;
updatePolicyConfiguration(policyConfiguration: ConfigurationModel): void;
updateApplicationConfiguration(applicationConfiguration: ConfigurationModel): void;
updateLocalUserConfiguration(localUserConfiguration: ConfigurationModel): void;
updateRemoteUserConfiguration(remoteUserConfiguration: ConfigurationModel): void;
updateWorkspaceConfiguration(workspaceConfiguration: ConfigurationModel): void;
updateFolderConfiguration(resource: URI, configuration: ConfigurationModel): void;
deleteFolderConfiguration(resource: URI): void;
compareAndUpdateDefaultConfiguration(defaults: ConfigurationModel, keys?: string[]): IConfigurationChange;
compareAndUpdatePolicyConfiguration(policyConfiguration: ConfigurationModel): IConfigurationChange;
compareAndUpdateApplicationConfiguration(application: ConfigurationModel): IConfigurationChange;
compareAndUpdateLocalUserConfiguration(user: ConfigurationModel): IConfigurationChange;
compareAndUpdateRemoteUserConfiguration(user: ConfigurationModel): IConfigurationChange;
compareAndUpdateWorkspaceConfiguration(workspaceConfiguration: ConfigurationModel): IConfigurationChange;
compareAndUpdateFolderConfiguration(resource: URI, folderConfiguration: ConfigurationModel): IConfigurationChange;
compareAndDeleteFolderConfiguration(folder: URI): IConfigurationChange;
get defaults(): ConfigurationModel;
get applicationConfiguration(): ConfigurationModel;
private _userConfiguration;
get userConfiguration(): ConfigurationModel;
get localUserConfiguration(): ConfigurationModel;
get remoteUserConfiguration(): ConfigurationModel;
get workspaceConfiguration(): ConfigurationModel;
protected get folderConfigurations(): ResourceMap<ConfigurationModel>;
private getConsolidatedConfigurationModel;
private getConsolidatedConfigurationModelForResource;
private getWorkspaceConsolidatedConfiguration;
private getFolderConsolidatedConfiguration;
private getFolderConfigurationModelForResource;
toData(): IConfigurationData;
allKeys(): string[];
protected allOverrideIdentifiers(): string[];
protected getAllKeysForOverrideIdentifier(overrideIdentifier: string): string[];
static parse(data: IConfigurationData): Configuration;
private static parseConfigurationModel;
}
export declare function mergeChanges(...changes: IConfigurationChange[]): IConfigurationChange;
export declare class ConfigurationChangeEvent implements IConfigurationChangeEvent {
readonly change: IConfigurationChange;
private readonly previous;
private readonly currentConfiguraiton;
private readonly currentWorkspace?;
private readonly _marker;
private readonly _markerCode1;
private readonly _markerCode2;
private readonly _affectsConfigStr;
readonly affectedKeys: Set<string>;
source: ConfigurationTarget;
sourceConfig: any;
constructor(
change: IConfigurationChange,
previous:
| {
workspace?: Workspace;
data: IConfigurationData;
}
| undefined,
currentConfiguraiton: Configuration,
currentWorkspace?: Workspace | undefined,
);
private _previousConfiguration;
get previousConfiguration(): Configuration | undefined;
affectsConfiguration(section: string, overrides?: IConfigurationOverrides): boolean;
}