UNPKG

@sussudio/platform

Version:

Internal APIs for VS Code's service injection the base services.

74 lines (72 loc) 2.7 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { Event } from '@sussudio/base/common/event.mjs'; import { IDisposable } from '@sussudio/base/common/lifecycle.mjs'; import { URI } from '@sussudio/base/common/uri.mjs'; import { IWorkspace, ISingleFolderWorkspaceIdentifier, IWorkspaceIdentifier, } from '../../workspace/common/workspace.mjs'; export declare const ILabelService: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<ILabelService>; export interface ILabelService { readonly _serviceBrand: undefined; /** * Gets the human readable label for a uri. * If `relative` is passed returns a label relative to the workspace root that the uri belongs to. * If `noPrefix` is passed does not tildify the label and also does not prepand the root name for relative labels in a multi root scenario. * If `separator` is passed, will use that over the defined path separator of the formatter. */ getUriLabel( resource: URI, options?: { relative?: boolean; noPrefix?: boolean; separator?: '/' | '\\'; }, ): string; getUriBasenameLabel(resource: URI): string; getWorkspaceLabel( workspace: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier | URI | IWorkspace, options?: { verbose: Verbosity; }, ): string; getHostLabel(scheme: string, authority?: string): string; getHostTooltip(scheme: string, authority?: string): string | undefined; getSeparator(scheme: string, authority?: string): '/' | '\\'; registerFormatter(formatter: ResourceLabelFormatter): IDisposable; onDidChangeFormatters: Event<IFormatterChangeEvent>; /** * Registers a formatter that's cached for the machine beyond the lifecycle * of the current window. Disposing the formatter _will not_ remove it from * the cache. */ registerCachedFormatter(formatter: ResourceLabelFormatter): IDisposable; } export declare const enum Verbosity { SHORT = 0, MEDIUM = 1, LONG = 2, } export interface IFormatterChangeEvent { scheme: string; } export interface ResourceLabelFormatter { scheme: string; authority?: string; priority?: boolean; formatting: ResourceLabelFormatting; } export interface ResourceLabelFormatting { label: string; separator: '/' | '\\' | ''; tildify?: boolean; normalizeDriveLetter?: boolean; workspaceSuffix?: string; workspaceTooltip?: string; authorityPrefix?: string; stripPathStartingSeparator?: boolean; }