sussudio
Version:
An unofficial VS Code Internal API
171 lines (170 loc) • 9.12 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 "../../../base/common/collections.mjs";
import { Emitter, Event } from "../../../base/common/event.mjs";
import { Disposable } from "../../../base/common/lifecycle.mjs";
import { ResourceMap } from "../../../base/common/map.mjs";
import { IExtUri } from "../../../base/common/resources.mjs";
import { URI } from "../../../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;
}