Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface PreferenceService

Service to manage preferences including, among others, getting and setting preference values as well as listening to preference changes.

Depending on your use case you might also want to look at createPreferenceProxy with which you can easily create a typesafe schema-based interface for your preferences. Internally the proxy uses the PreferenceService so both approaches are compatible.

Hierarchy

Implemented by

Index

Properties

NULL

NULL: Disposable = create(() => { })

onPreferenceChanged

onPreferenceChanged: Event<PreferenceChange>

Registers a callback which will be called whenever a preference is changed.

onPreferencesChanged

onPreferencesChanged: Event<PreferenceChanges>

Registers a callback which will be called whenever one or more preferences are changed.

Readonly ready

ready: Promise<void>

Promise indicating whether the service successfully initialized.

Methods

create

dispose

  • dispose(): void

get

  • get<T>(preferenceName: string): T | undefined
  • get<T>(preferenceName: string, defaultValue: T): T
  • get<T>(preferenceName: string, defaultValue: T, resourceUri?: undefined | string): T
  • get<T>(preferenceName: string, defaultValue?: T, resourceUri?: undefined | string): T | undefined
  • Retrieve the stored value for the given preference.

    Type parameters

    • T

    Parameters

    • preferenceName: string

      the preference identifier.

    Returns T | undefined

    the value stored for the given preference when it exists, undefined otherwise.

  • Retrieve the stored value for the given preference.

    Type parameters

    • T

    Parameters

    • preferenceName: string

      the preference identifier.

    • defaultValue: T

      the value to return when no value for the given preference is stored.

    Returns T

    the value stored for the given preference when it exists, otherwise the given default value.

  • Retrieve the stored value for the given preference and resourceUri.

    Type parameters

    • T

    Parameters

    • preferenceName: string

      the preference identifier.

    • defaultValue: T

      the value to return when no value for the given preference is stored.

    • Optional resourceUri: undefined | string

      the uri of the resource for which the preference is stored. This used to retrieve a potentially different value for the same preference for different resources, for example files.encoding.

    Returns T

    the value stored for the given preference and resourceUri when it exists, otherwise the given default value.

  • Retrieve the stored value for the given preference and resourceUri.

    Type parameters

    • T

    Parameters

    • preferenceName: string

      the preference identifier.

    • Optional defaultValue: T

      the value to return when no value for the given preference is stored.

    • Optional resourceUri: undefined | string

      the uri of the resource for which the preference is stored. This used to retrieve a potentially different value for the same preference for different resources, for example files.encoding.

    Returns T | undefined

    the value stored for the given preference and resourceUri when it exists, otherwise the given default value.

getConfigUri

  • getConfigUri(scope: PreferenceScope, resourceUri?: undefined | string, sectionName?: undefined | string): URI | undefined
  • Returns the uri of the configuration resource for the given scope and optional resource uri.

    Parameters

    • scope: PreferenceScope

      the PreferenceScope to query for.

    • Optional resourceUri: undefined | string

      the optional uri of the resource-specific preference handling

    • Optional sectionName: undefined | string

      the optional preference section to query for.

    Returns URI | undefined

    the uri of the configuration resource for the given scope and optional resource uri it it exists, undefined otherwise.

inspect

  • inspect<T>(preferenceName: string, resourceUri?: undefined | string): PreferenceInspection<T> | undefined
  • Retrieve the stored value for the given preference and resourceUri in all available scopes.

    Type parameters

    • T

    Parameters

    • preferenceName: string

      the preference identifier.

    • Optional resourceUri: undefined | string

      the uri of the resource for which the preference is stored.

    Returns PreferenceInspection<T> | undefined

    an object containing the value of the given preference for all scopes.

is

  • is(arg: any): arg is Disposable

overriddenPreferenceName

  • Tries to split the given preference identifier into the original OverridePreferenceName attributes with which this identifier was created. Returns undefined if this is not possible, for example when the given preference identifier was not generated by overridePreferenceName.

    This method is checked when resolving preferences. Therefore together with "overridePreferenceName" this can be used to handle specialized preferences, e.g. "[markdown].editor.autoIndent" and "editor.autoIndent".

    Parameters

    Returns OverridePreferenceName | undefined

    the OverridePreferenceName which was used to create the given preferenceName if this was the case, undefined otherwise.

overridePreferenceName

resolve

  • Retrieve the stored value for the given preference and resourceUri.

    Type parameters

    • T

    Parameters

    • preferenceName: string

      the preference identifier.

    • Optional defaultValue: T

      the value to return when no value for the given preference is stored.

    • Optional resourceUri: undefined | string

      the uri of the resource for which the preference is stored. This used to retrieve a potentially different value for the same preference for different resources, for example files.encoding.

    Returns PreferenceResolveResult<T>

    an object containing the value stored for the given preference and resourceUri when it exists, otherwise the given default value. If determinable the object will also contain the uri of the configuration resource in which the preference was stored.

set

  • set(preferenceName: string, value: any, scope?: PreferenceScope, resourceUri?: undefined | string): Promise<void>
  • Sets the given preference to the given value.

    Parameters

    • preferenceName: string

      the preference identifier.

    • value: any

      the new value of the preference.

    • Optional scope: PreferenceScope

      the scope for which the value shall be set, i.e. user, workspace etc. When the folder scope is specified a resourceUri must be provided.

    • Optional resourceUri: undefined | string

      the uri of the resource for which the preference is stored. This used to store a potentially different value for the same preference for different resources, for example files.encoding.

    Returns Promise<void>

    a promise which resolves to undefined when setting the preference was successful. Otherwise it rejects with an error.

updateValue

  • updateValue(preferenceName: string, value: any, resourceUri?: undefined | string): Promise<void>
  • Determines and applies the changes necessary to apply value to either the resourceUri supplied or the active session. If there is no setting for the preferenceName, the change will be applied in user scope. If there is a setting conflicting with the specified value, the change will be applied in the most specific scope with a conflicting value.

    Parameters

    • preferenceName: string

      the identifier of the preference to modify.

    • value: any

      the value to which to set the preference. undefined will reset the preference to its default value.

    • Optional resourceUri: undefined | string

      the uri of the resource to which the change is to apply. If none is provided, folder scope will be ignored.

    Returns Promise<void>