sussudio
Version:
An unofficial VS Code Internal API
66 lines (65 loc) • 2.43 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 { URI, UriDto } from "../../../base/common/uri.mjs";
import { ContextKeyExpression } from "../../contextkey/common/contextkey.mjs";
import { ThemeIcon } from "../../theme/common/themeService.mjs";
import { Categories } from './actionCommonCategories';
export interface ILocalizedString {
/**
* The localized value of the string.
*/
value: string;
/**
* The original (non localized value of the string)
*/
original: string;
}
export interface ICommandActionTitle extends ILocalizedString {
/**
* The title with a mnemonic designation. && precedes the mnemonic.
*/
mnemonicTitle?: string;
}
export type Icon = {
dark?: URI;
light?: URI;
} | ThemeIcon;
export interface ICommandActionToggleInfo {
/**
* The condition that marks the action as toggled.
*/
condition: ContextKeyExpression;
icon?: Icon;
tooltip?: string;
/**
* The title that goes well with a a check mark, e.g "(check) Line Numbers" vs "Toggle Line Numbers"
*/
title?: string;
/**
* Like title but with a mnemonic designation.
*/
mnemonicTitle?: string;
}
export declare function isICommandActionToggleInfo(thing: ContextKeyExpression | ICommandActionToggleInfo | undefined): thing is ICommandActionToggleInfo;
export interface ICommandActionSource {
readonly id: string;
readonly title: string;
}
export interface ICommandAction {
id: string;
title: string | ICommandActionTitle;
shortTitle?: string | ICommandActionTitle;
category?: keyof typeof Categories | ILocalizedString | string;
tooltip?: string | ILocalizedString;
icon?: Icon;
source?: ICommandActionSource;
precondition?: ContextKeyExpression;
/**
* The action is a toggle action. Define the context key expression that reflects its toggle-state
* or define toggle-info including an icon and a title that goes well with a checkmark.
*/
toggled?: ContextKeyExpression | ICommandActionToggleInfo;
}
export type ISerializableCommandAction = UriDto<ICommandAction>;