@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
74 lines (72 loc) • 2.7 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 { 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;
}