@phosphor/commands
- Version 1.7.2
- Published
- 60.8 kB
- 6 dependencies
- BSD-3-Clause license
Install
npm i @phosphor/commands
yarn add @phosphor/commands
pnpm add @phosphor/commands
Overview
PhosphorJS - Commands
Index
Classes
Namespaces
Classes
class CommandRegistry
class CommandRegistry {}
An object which manages a collection of commands.
#### Notes A command registry can be used to populate a variety of action-based widgets, such as command palettes, menus, and toolbars.
constructor
constructor();
Construct a new command registry.
property commandChanged
readonly commandChanged: ISignal<this, CommandRegistry.ICommandChangedArgs>;
A signal emitted when a command has changed.
#### Notes This signal is useful for visual representations of commands which need to refresh when the state of a relevant command has changed.
property commandExecuted
readonly commandExecuted: ISignal<this, CommandRegistry.ICommandExecutedArgs>;
A signal emitted when a command has executed.
#### Notes Care should be taken when consuming this signal. It is intended to be used largely for debugging and logging purposes. It should not be (ab)used for general purpose spying on command execution.
property keyBindingChanged
readonly keyBindingChanged: ISignal< this, CommandRegistry.IKeyBindingChangedArgs>;
A signal emitted when a key binding is changed.
property keyBindings
readonly keyBindings: readonly CommandRegistry.IKeyBinding[];
A read-only array of the key bindings in the registry.
method addCommand
addCommand: ( id: string, options: CommandRegistry.ICommandOptions) => IDisposable;
Add a command to the registry.
Parameter id
The unique id of the command.
Parameter options
The options for the command.
Returns
A disposable which will remove the command.
Throws
An error if the given
id
is already registered.
method addKeyBinding
addKeyBinding: (options: CommandRegistry.IKeyBindingOptions) => IDisposable;
Add a key binding to the registry.
Parameter options
The options for creating the key binding.
Returns
A disposable which removes the added key binding.
#### Notes If multiple key bindings are registered for the same sequence, the binding with the highest selector specificity is executed first. A tie is broken by using the most recently added key binding.
Ambiguous key bindings are resolved with a timeout. As an example, suppose two key bindings are registered: one with the key sequence
['Ctrl D']
, and another with['Ctrl D', 'Ctrl W']
. If the user pressesCtrl D
, the first binding cannot be immediately executed since the user may intend to complete the chord withCtrl W
. For such cases, a timer is used to allow the chord to be completed. If the chord is not completed before the timeout, the first binding is executed.
method caption
caption: (id: string, args?: ReadonlyJSONObject) => string;
Get the short form caption for a specific command.
Parameter id
The id of the command of interest.
Parameter args
The arguments for the command.
Returns
The caption for the command, or an empty string if the command is not registered.
method className
className: (id: string, args?: ReadonlyJSONObject) => string;
Get the extra class name for a specific command.
Parameter id
The id of the command of interest.
Parameter args
The arguments for the command.
Returns
The class name for the command, or an empty string if the command is not registered.
method dataset
dataset: (id: string, args?: ReadonlyJSONObject) => CommandRegistry.Dataset;
Get the dataset for a specific command.
Parameter id
The id of the command of interest.
Parameter args
The arguments for the command.
Returns
The dataset for the command, or an empty dataset if the command is not registered.
method execute
execute: (id: string, args?: ReadonlyJSONObject) => Promise<any>;
Execute a specific command.
Parameter id
The id of the command of interest.
Parameter args
The arguments for the command.
Returns
A promise which resolves with the result of the command.
#### Notes The promise will reject if the command throws an exception, or if the command is not registered.
method hasCommand
hasCommand: (id: string) => boolean;
Test whether a specific command is registered.
Parameter id
The id of the command of interest.
Returns
true
if the command is registered,false
otherwise.
method icon
icon: (id: string, args?: ReadonlyJSONObject) => string;
Deprecated
Use
iconClass()
instead.
method iconClass
iconClass: (id: string, args?: ReadonlyJSONObject) => string;
Get the icon class for a specific command.
Parameter id
The id of the command of interest.
Parameter args
The arguments for the command.
Returns
The icon class for the command, or an empty string if the command is not registered.
method iconLabel
iconLabel: (id: string, args?: ReadonlyJSONObject) => string;
Get the icon label for a specific command.
Parameter id
The id of the command of interest.
Parameter args
The arguments for the command.
Returns
The icon label for the command, or an empty string if the command is not registered.
method isEnabled
isEnabled: (id: string, args?: ReadonlyJSONObject) => boolean;
Test whether a specific command is enabled.
Parameter id
The id of the command of interest.
Parameter args
The arguments for the command.
Returns
A boolean indicating whether the command is enabled, or
false
if the command is not registered.
method isToggled
isToggled: (id: string, args?: ReadonlyJSONObject) => boolean;
Test whether a specific command is toggled.
Parameter id
The id of the command of interest.
Parameter args
The arguments for the command.
Returns
A boolean indicating whether the command is toggled, or
false
if the command is not registered.
method isVisible
isVisible: (id: string, args?: ReadonlyJSONObject) => boolean;
Test whether a specific command is visible.
Parameter id
The id of the command of interest.
Parameter args
The arguments for the command.
Returns
A boolean indicating whether the command is visible, or
false
if the command is not registered.
method label
label: (id: string, args?: ReadonlyJSONObject) => string;
Get the display label for a specific command.
Parameter id
The id of the command of interest.
Parameter args
The arguments for the command.
Returns
The display label for the command, or an empty string if the command is not registered.
method listCommands
listCommands: () => string[];
List the ids of the registered commands.
Returns
A new array of the registered command ids.
method mnemonic
mnemonic: (id: string, args?: ReadonlyJSONObject) => number;
Get the mnemonic index for a specific command.
Parameter id
The id of the command of interest.
Parameter args
The arguments for the command.
Returns
The mnemonic index for the command, or
-1
if the command is not registered.
method notifyCommandChanged
notifyCommandChanged: (id?: string) => void;
Notify listeners that the state of a command has changed.
Parameter id
The id of the command which has changed. If more than one command has changed, this argument should be omitted.
Throws
An error if the given
id
is not registered.#### Notes This method should be called by the command author whenever the application state changes such that the results of the command metadata functions may have changed.
This will cause the
commandChanged
signal to be emitted.
method processKeydownEvent
processKeydownEvent: (event: KeyboardEvent) => void;
Process a
'keydown'
event and invoke a matching key binding.Parameter event
The event object for a
'keydown'
event.#### Notes This should be called in response to a
'keydown'
event in order to invoke the command for the best matching key binding.The registry **does not** install its own listener for
'keydown'
events. This allows the application full control over the nodes and phase for which the registry processes'keydown'
events.
method usage
usage: (id: string, args?: ReadonlyJSONObject) => string;
Get the usage help text for a specific command.
Parameter id
The id of the command of interest.
Parameter args
The arguments for the command.
Returns
The usage text for the command, or an empty string if the command is not registered.
Namespaces
namespace CommandRegistry
namespace CommandRegistry {}
The namespace for the
CommandRegistry
class statics.
function formatKeystroke
formatKeystroke: (keystroke: string) => string;
Format a keystroke for display on the local system.
function keystrokeForKeydownEvent
keystrokeForKeydownEvent: (event: KeyboardEvent) => string;
Create a normalized keystroke for a
'keydown'
event.Parameter event
The event object for a
'keydown'
event.Returns
A normalized keystroke, or an empty string if the event does not represent a valid keystroke for the given layout.
function normalizeKeystroke
normalizeKeystroke: (keystroke: string) => string;
Normalize a keystroke into a canonical representation.
Parameter keystroke
The keystroke of interest.
Returns
The normalized representation of the keystroke.
#### Notes This normalizes the keystroke by removing duplicate modifiers and extra primary keys, and assembling the parts in a canonical order.
The
Cmd
modifier is ignored on non-Mac platforms.
function parseKeystroke
parseKeystroke: (keystroke: string) => IKeystrokeParts;
Parse a keystroke into its constituent components.
Parameter keystroke
The keystroke of interest.
Returns
The parsed components of the keystroke.
#### Notes The keystroke should be of the form:
[<modifier 1> [<modifier 2> [<modifier N> ]]]<primary key>
The supported modifiers are:
Accel
,Alt
,Cmd
,Ctrl
, andShift
. TheAccel
modifier is translated toCmd
on Mac andCtrl
on all other platforms.The parsing is tolerant and will not throw exceptions. Notably: - Duplicate modifiers are ignored. - Extra primary keys are ignored. - The order of modifiers and primary key is irrelevant. - The keystroke parts should be separated by whitespace. - The keystroke is case sensitive.
interface ICommandChangedArgs
interface ICommandChangedArgs {}
An arguments object for the
commandChanged
signal.
interface ICommandExecutedArgs
interface ICommandExecutedArgs {}
An arguments object for the
commandExecuted
signal.
interface ICommandOptions
interface ICommandOptions {}
An options object for creating a command.
#### Notes A command is an abstract representation of code to be executed along with metadata for describing how the command should be displayed in a visual representation.
A command is a collection of functions, *not* methods. The command registry will always invoke the command functions with a
thisArg
which isundefined
.
property caption
caption?: string | CommandFunc<string>;
The caption for the command.
#### Notes This should be a simple one line description of the command. It is used by some visual representations to show quick info about the command.
This can be a string literal, or a function which returns the caption based on the provided command arguments.
The default value is an empty string.
property className
className?: string | CommandFunc<string>;
The general class name for the command.
#### Notes This class name will be added to the primary node for the visual representation of the command.
Multiple class names can be separated with white space.
This can be a string literal, or a function which returns the class name based on the provided command arguments.
The default value is an empty string.
property dataset
dataset?: Dataset | CommandFunc<Dataset>;
The dataset for the command.
#### Notes The dataset values will be added to the primary node for the visual representation of the command.
This can be a dataset object, or a function which returns the dataset object based on the provided command arguments.
The default value is an empty dataset.
property execute
execute: CommandFunc<any | Promise<any>>;
The function to invoke when the command is executed.
#### Notes This should return the result of the command (if applicable) or a promise which yields the result. The result is resolved as a promise and that promise is returned to the code which executed the command.
This may be invoked even when
isEnabled
returnsfalse
.
property icon
icon?: string | CommandFunc<string>;
Deprecated
Use
iconClass
instead.
property iconClass
iconClass?: string | CommandFunc<string>;
The icon class for the command.
#### Notes This class name will be added to the icon node for the visual representation of the command.
Multiple class names can be separated with white space.
This can be a string literal, or a function which returns the icon based on the provided command arguments.
The default value is an empty string.
property iconLabel
iconLabel?: string | CommandFunc<string>;
The icon label for the command.
#### Notes This label will be added as text to the icon node for the visual representation of the command.
This can be a string literal, or a function which returns the label based on the provided command arguments.
The default value is an empty string.
property isEnabled
isEnabled?: CommandFunc<boolean>;
A function which indicates whether the command is enabled.
#### Notes Visual representations may use this value to display a disabled command as grayed-out or in some other non-interactive fashion.
The default value is
() => true
.
property isToggled
isToggled?: CommandFunc<boolean>;
A function which indicates whether the command is toggled.
#### Notes Visual representations may use this value to display a toggled command in a different form, such as a check mark icon for a menu item or a depressed state for a toggle button.
The default value is
() => false
.
property isVisible
isVisible?: CommandFunc<boolean>;
A function which indicates whether the command is visible.
#### Notes Visual representations may use this value to hide or otherwise not display a non-visible command.
The default value is
() => true
.
property label
label?: string | CommandFunc<string>;
The label for the command.
#### Notes This can be a string literal, or a function which returns the label based on the provided command arguments.
The label is often used as the primary text for the command.
The default value is an empty string.
property mnemonic
mnemonic?: number | CommandFunc<number>;
The index of the mnemonic character in the command's label.
#### Notes This can be an index literal, or a function which returns the mnemonic index based on the provided command arguments.
The mnemonic character is often used by menus to provide easy single-key keyboard access for triggering a menu item. It is typically rendered as an underlined character in the label.
The default value is
-1
.
property usage
usage?: string | CommandFunc<string>;
The usage text for the command.
#### Notes This should be a full description of the command, which includes information about the structure of the arguments and the type of the return value. It is used by some visual representations when displaying complete help info about the command.
This can be a string literal, or a function which returns the usage text based on the provided command arguments.
The default value is an empty string.
interface IKeyBinding
interface IKeyBinding {}
An object which represents a key binding.
#### Notes A key binding is an immutable object created by a registry.
property args
readonly args: ReadonlyJSONObject;
The arguments for the command.
property command
readonly command: string;
The command executed when the binding is matched.
property keys
readonly keys: ReadonlyArray<string>;
The key sequence for the binding.
property selector
readonly selector: string;
The CSS selector for the binding.
interface IKeyBindingChangedArgs
interface IKeyBindingChangedArgs {}
An arguments object for the
keyBindingChanged
signal.
interface IKeyBindingOptions
interface IKeyBindingOptions {}
An options object for creating a key binding.
property args
args?: ReadonlyJSONObject;
The arguments for the command, if necessary.
The default value is an empty object.
property command
command: string;
The id of the command to execute when the binding is matched.
property keys
keys: string[];
The default key sequence for the key binding.
A key sequence is composed of one or more keystrokes, where each keystroke is a combination of modifiers and a primary key.
Most key sequences will contain a single keystroke. Key sequences with multiple keystrokes are called "chords", and are useful for implementing modal input (ala Vim).
Each keystroke in the sequence should be of the form:
[<modifier 1> [<modifier 2> [<modifier N> ]]]<primary key>
The supported modifiers are:
Accel
,Alt
,Cmd
,Ctrl
, andShift
. TheAccel
modifier is translated toCmd
on Mac andCtrl
on all other platforms. TheCmd
modifier is ignored on non-Mac platforms.Keystrokes are case sensitive.
**Examples:**
['Accel C']
,['Shift F11']
,['D', 'D']
property linuxKeys
linuxKeys?: string[];
The key sequence to use when running on Linux.
If provided, this will override
keys
on Linux platforms.
property macKeys
macKeys?: string[];
The key sequence to use when running on Mac.
If provided, this will override
keys
on Mac platforms.
property selector
selector: string;
The CSS selector for the key binding.
The key binding will only be invoked when the selector matches a node on the propagation path of the keydown event. This allows the key binding to be restricted to user-defined contexts.
The selector must not contain commas.
property winKeys
winKeys?: string[];
The key sequence to use when running on Windows.
If provided, this will override
keys
on Windows platforms.
interface IKeystrokeParts
interface IKeystrokeParts {}
An object which holds the results of parsing a keystroke.
property alt
alt: boolean;
Whether
'Alt'
appears in the keystroke.
property cmd
cmd: boolean;
Whether
'Cmd'
appears in the keystroke.
property ctrl
ctrl: boolean;
Whether
'Ctrl'
appears in the keystroke.
property key
key: string;
The primary key for the keystroke.
property shift
shift: boolean;
Whether
'Shift'
appears in the keystroke.
type CommandFunc
type CommandFunc<T> = (args: ReadonlyJSONObject) => T;
A type alias for a user-defined command function.
type Dataset
type Dataset = { readonly [key: string]: string;};
A type alias for a simple immutable string dataset.
Package Files (1)
Dependencies (6)
Dev Dependencies (16)
Peer Dependencies (0)
No peer dependencies.
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/@phosphor/commands
.
- Markdown[![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/@phosphor/commands)
- HTML<a href="https://www.jsdocs.io/package/@phosphor/commands"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 3653 ms. - Missing or incorrect documentation? Open an issue for this package.