1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-30 10:36:35 +02:00

Tools: updated plugin types

This commit is contained in:
Laurent Cozic 2020-10-21 00:55:10 +01:00
parent 995034c53f
commit 6eebeca259
24 changed files with 102 additions and 56 deletions

View File

@ -30,7 +30,7 @@ export default class JoplinCommands {
* await joplin.commands.execute('newFolder', "SOME_FOLDER_ID");
* ```
*/
execute(commandName: string, ...args: any[]): Promise<any>;
execute(commandName: string, ...args: any[]): Promise<any | void>;
/**
* <span class="platform-desktop">desktop</span> Registers a new command.
*

View File

@ -9,9 +9,12 @@ export interface Command {
name: string
/**
* Label to be displayed on menu items or keyboard shortcut editor for example
* Label to be displayed on menu items or keyboard shortcut editor for example.
* If it is missing, it's assumed it's a private command, to be called programmatically only.
* In that case the command will not appear in the shortcut editor or command panel, and logically
* should not be used as a menu item.
*/
label: string
label?: string
/**
* Icon to be used on toolbar buttons for example
@ -19,9 +22,9 @@ export interface Command {
iconName?: string,
/**
* Code to be ran when the command is executed. It maybe return a result.
* Code to be ran when the command is executed. It may return a result.
*/
execute(props:any):Promise<any>
execute(...args:any[]):Promise<any | void>
/**
* Defines whether the command should be enabled or disabled, which in turns affects

View File

@ -30,7 +30,7 @@ export default class JoplinCommands {
* await joplin.commands.execute('newFolder', "SOME_FOLDER_ID");
* ```
*/
execute(commandName: string, ...args: any[]): Promise<any>;
execute(commandName: string, ...args: any[]): Promise<any | void>;
/**
* <span class="platform-desktop">desktop</span> Registers a new command.
*

View File

@ -9,9 +9,12 @@ export interface Command {
name: string
/**
* Label to be displayed on menu items or keyboard shortcut editor for example
* Label to be displayed on menu items or keyboard shortcut editor for example.
* If it is missing, it's assumed it's a private command, to be called programmatically only.
* In that case the command will not appear in the shortcut editor or command panel, and logically
* should not be used as a menu item.
*/
label: string
label?: string
/**
* Icon to be used on toolbar buttons for example
@ -19,9 +22,9 @@ export interface Command {
iconName?: string,
/**
* Code to be ran when the command is executed. It maybe return a result.
* Code to be ran when the command is executed. It may return a result.
*/
execute(props:any):Promise<any>
execute(...args:any[]):Promise<any | void>
/**
* Defines whether the command should be enabled or disabled, which in turns affects

View File

@ -30,7 +30,7 @@ export default class JoplinCommands {
* await joplin.commands.execute('newFolder', "SOME_FOLDER_ID");
* ```
*/
execute(commandName: string, ...args: any[]): Promise<any>;
execute(commandName: string, ...args: any[]): Promise<any | void>;
/**
* <span class="platform-desktop">desktop</span> Registers a new command.
*

View File

@ -9,9 +9,12 @@ export interface Command {
name: string
/**
* Label to be displayed on menu items or keyboard shortcut editor for example
* Label to be displayed on menu items or keyboard shortcut editor for example.
* If it is missing, it's assumed it's a private command, to be called programmatically only.
* In that case the command will not appear in the shortcut editor or command panel, and logically
* should not be used as a menu item.
*/
label: string
label?: string
/**
* Icon to be used on toolbar buttons for example
@ -19,9 +22,9 @@ export interface Command {
iconName?: string,
/**
* Code to be ran when the command is executed. It maybe return a result.
* Code to be ran when the command is executed. It may return a result.
*/
execute(props:any):Promise<any>
execute(...args:any[]):Promise<any | void>
/**
* Defines whether the command should be enabled or disabled, which in turns affects

View File

@ -30,7 +30,7 @@ export default class JoplinCommands {
* await joplin.commands.execute('newFolder', "SOME_FOLDER_ID");
* ```
*/
execute(commandName: string, ...args: any[]): Promise<any>;
execute(commandName: string, ...args: any[]): Promise<any | void>;
/**
* <span class="platform-desktop">desktop</span> Registers a new command.
*

View File

@ -9,9 +9,12 @@ export interface Command {
name: string
/**
* Label to be displayed on menu items or keyboard shortcut editor for example
* Label to be displayed on menu items or keyboard shortcut editor for example.
* If it is missing, it's assumed it's a private command, to be called programmatically only.
* In that case the command will not appear in the shortcut editor or command panel, and logically
* should not be used as a menu item.
*/
label: string
label?: string
/**
* Icon to be used on toolbar buttons for example
@ -19,9 +22,9 @@ export interface Command {
iconName?: string,
/**
* Code to be ran when the command is executed. It maybe return a result.
* Code to be ran when the command is executed. It may return a result.
*/
execute(props:any):Promise<any>
execute(...args:any[]):Promise<any | void>
/**
* Defines whether the command should be enabled or disabled, which in turns affects

View File

@ -30,7 +30,7 @@ export default class JoplinCommands {
* await joplin.commands.execute('newFolder', "SOME_FOLDER_ID");
* ```
*/
execute(commandName: string, ...args: any[]): Promise<any>;
execute(commandName: string, ...args: any[]): Promise<any | void>;
/**
* <span class="platform-desktop">desktop</span> Registers a new command.
*

View File

@ -9,9 +9,12 @@ export interface Command {
name: string
/**
* Label to be displayed on menu items or keyboard shortcut editor for example
* Label to be displayed on menu items or keyboard shortcut editor for example.
* If it is missing, it's assumed it's a private command, to be called programmatically only.
* In that case the command will not appear in the shortcut editor or command panel, and logically
* should not be used as a menu item.
*/
label: string
label?: string
/**
* Icon to be used on toolbar buttons for example
@ -19,9 +22,9 @@ export interface Command {
iconName?: string,
/**
* Code to be ran when the command is executed. It maybe return a result.
* Code to be ran when the command is executed. It may return a result.
*/
execute(props:any):Promise<any>
execute(...args:any[]):Promise<any | void>
/**
* Defines whether the command should be enabled or disabled, which in turns affects

View File

@ -30,7 +30,7 @@ export default class JoplinCommands {
* await joplin.commands.execute('newFolder', "SOME_FOLDER_ID");
* ```
*/
execute(commandName: string, ...args: any[]): Promise<any>;
execute(commandName: string, ...args: any[]): Promise<any | void>;
/**
* <span class="platform-desktop">desktop</span> Registers a new command.
*

View File

@ -9,9 +9,12 @@ export interface Command {
name: string
/**
* Label to be displayed on menu items or keyboard shortcut editor for example
* Label to be displayed on menu items or keyboard shortcut editor for example.
* If it is missing, it's assumed it's a private command, to be called programmatically only.
* In that case the command will not appear in the shortcut editor or command panel, and logically
* should not be used as a menu item.
*/
label: string
label?: string
/**
* Icon to be used on toolbar buttons for example
@ -19,9 +22,9 @@ export interface Command {
iconName?: string,
/**
* Code to be ran when the command is executed. It maybe return a result.
* Code to be ran when the command is executed. It may return a result.
*/
execute(props:any):Promise<any>
execute(...args:any[]):Promise<any | void>
/**
* Defines whether the command should be enabled or disabled, which in turns affects

View File

@ -21,6 +21,15 @@ joplin.plugins.register({
},
});
// Commands that return a result and take argument can only be used
// programmatically, so it's not necessary to set a label and icon.
await joplin.commands.register({
name: 'commandWithResult',
execute: async (arg1:string, arg2:number) => {
return 'I got: ' + arg1 + ' and ' + arg2;
},
});
// Add the first command to the note toolbar
await joplin.views.toolbarButtons.create('testCommand1', ToolbarButtonLocation.NoteToolbar);
@ -30,5 +39,9 @@ joplin.plugins.register({
// Also add the commands to the menu
await joplin.views.menuItems.create('testCommand1', MenuItemLocation.Tools, { accelerator: 'CmdOrCtrl+Alt+Shift+B' });
await joplin.views.menuItems.create('testCommand2', MenuItemLocation.Tools);
console.info('Running command with arguments...');
const result = await joplin.commands.execute('commandWithResult', 'abcd', 123);
console.info('Result was: ' + result);
},
});

View File

@ -30,7 +30,7 @@ export default class JoplinCommands {
* await joplin.commands.execute('newFolder', "SOME_FOLDER_ID");
* ```
*/
execute(commandName: string, ...args: any[]): Promise<any>;
execute(commandName: string, ...args: any[]): Promise<any | void>;
/**
* <span class="platform-desktop">desktop</span> Registers a new command.
*

View File

@ -9,9 +9,12 @@ export interface Command {
name: string
/**
* Label to be displayed on menu items or keyboard shortcut editor for example
* Label to be displayed on menu items or keyboard shortcut editor for example.
* If it is missing, it's assumed it's a private command, to be called programmatically only.
* In that case the command will not appear in the shortcut editor or command panel, and logically
* should not be used as a menu item.
*/
label: string
label?: string
/**
* Icon to be used on toolbar buttons for example
@ -19,9 +22,9 @@ export interface Command {
iconName?: string,
/**
* Code to be ran when the command is executed. It maybe return a result.
* Code to be ran when the command is executed. It may return a result.
*/
execute(props:any):Promise<any>
execute(...args:any[]):Promise<any | void>
/**
* Defines whether the command should be enabled or disabled, which in turns affects

View File

@ -30,7 +30,7 @@ export default class JoplinCommands {
* await joplin.commands.execute('newFolder', "SOME_FOLDER_ID");
* ```
*/
execute(commandName: string, ...args: any[]): Promise<any>;
execute(commandName: string, ...args: any[]): Promise<any | void>;
/**
* <span class="platform-desktop">desktop</span> Registers a new command.
*

View File

@ -9,9 +9,12 @@ export interface Command {
name: string
/**
* Label to be displayed on menu items or keyboard shortcut editor for example
* Label to be displayed on menu items or keyboard shortcut editor for example.
* If it is missing, it's assumed it's a private command, to be called programmatically only.
* In that case the command will not appear in the shortcut editor or command panel, and logically
* should not be used as a menu item.
*/
label: string
label?: string
/**
* Icon to be used on toolbar buttons for example
@ -19,9 +22,9 @@ export interface Command {
iconName?: string,
/**
* Code to be ran when the command is executed. It maybe return a result.
* Code to be ran when the command is executed. It may return a result.
*/
execute(props:any):Promise<any>
execute(...args:any[]):Promise<any | void>
/**
* Defines whether the command should be enabled or disabled, which in turns affects

View File

@ -30,7 +30,7 @@ export default class JoplinCommands {
* await joplin.commands.execute('newFolder', "SOME_FOLDER_ID");
* ```
*/
execute(commandName: string, ...args: any[]): Promise<any>;
execute(commandName: string, ...args: any[]): Promise<any | void>;
/**
* <span class="platform-desktop">desktop</span> Registers a new command.
*

View File

@ -9,9 +9,12 @@ export interface Command {
name: string
/**
* Label to be displayed on menu items or keyboard shortcut editor for example
* Label to be displayed on menu items or keyboard shortcut editor for example.
* If it is missing, it's assumed it's a private command, to be called programmatically only.
* In that case the command will not appear in the shortcut editor or command panel, and logically
* should not be used as a menu item.
*/
label: string
label?: string
/**
* Icon to be used on toolbar buttons for example
@ -19,9 +22,9 @@ export interface Command {
iconName?: string,
/**
* Code to be ran when the command is executed. It maybe return a result.
* Code to be ran when the command is executed. It may return a result.
*/
execute(props:any):Promise<any>
execute(...args:any[]):Promise<any | void>
/**
* Defines whether the command should be enabled or disabled, which in turns affects

View File

@ -30,7 +30,7 @@ export default class JoplinCommands {
* await joplin.commands.execute('newFolder', "SOME_FOLDER_ID");
* ```
*/
execute(commandName: string, ...args: any[]): Promise<any>;
execute(commandName: string, ...args: any[]): Promise<any | void>;
/**
* <span class="platform-desktop">desktop</span> Registers a new command.
*

View File

@ -9,9 +9,12 @@ export interface Command {
name: string
/**
* Label to be displayed on menu items or keyboard shortcut editor for example
* Label to be displayed on menu items or keyboard shortcut editor for example.
* If it is missing, it's assumed it's a private command, to be called programmatically only.
* In that case the command will not appear in the shortcut editor or command panel, and logically
* should not be used as a menu item.
*/
label: string
label?: string
/**
* Icon to be used on toolbar buttons for example
@ -19,9 +22,9 @@ export interface Command {
iconName?: string,
/**
* Code to be ran when the command is executed. It maybe return a result.
* Code to be ran when the command is executed. It may return a result.
*/
execute(props:any):Promise<any>
execute(...args:any[]):Promise<any | void>
/**
* Defines whether the command should be enabled or disabled, which in turns affects

View File

@ -14,7 +14,7 @@ export interface CommandContext {
}
export interface CommandRuntime {
execute(context:CommandContext, ...args:any[]):Promise<any>
execute(context:CommandContext, ...args:any[]):Promise<any | void>
enabledCondition?: EnabledCondition;
// Used for the (optional) toolbar button title
mapStateToTitle?(state:any):string,

View File

@ -33,7 +33,7 @@ export default class JoplinCommands {
* await joplin.commands.execute('newFolder', "SOME_FOLDER_ID");
* ```
*/
async execute(commandName: string, ...args:any[]):Promise<any> {
async execute(commandName: string, ...args:any[]):Promise<any | void> {
return CommandService.instance().execute(commandName, ...args);
}

View File

@ -9,9 +9,12 @@ export interface Command {
name: string
/**
* Label to be displayed on menu items or keyboard shortcut editor for example
* Label to be displayed on menu items or keyboard shortcut editor for example.
* If it is missing, it's assumed it's a private command, to be called programmatically only.
* In that case the command will not appear in the shortcut editor or command panel, and logically
* should not be used as a menu item.
*/
label: string
label?: string
/**
* Icon to be used on toolbar buttons for example
@ -19,9 +22,9 @@ export interface Command {
iconName?: string,
/**
* Code to be ran when the command is executed. It maybe return a result.
* Code to be ran when the command is executed. It may return a result.
*/
execute(props:any):Promise<any>
execute(...args:any[]):Promise<any | void>
/**
* Defines whether the command should be enabled or disabled, which in turns affects