You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-07-13 00:10:37 +02:00
Plugins: Add support for editor plugins (#11296)
This commit is contained in:
@ -0,0 +1,37 @@
|
||||
import { CommandContext, CommandDeclaration, CommandRuntime } from '@joplin/lib/services/CommandService';
|
||||
import { _ } from '@joplin/lib/locale';
|
||||
import Setting from '@joplin/lib/models/Setting';
|
||||
import getActivePluginEditorView from '@joplin/lib/services/plugins/utils/getActivePluginEditorView';
|
||||
import Logger from '@joplin/utils/Logger';
|
||||
|
||||
const logger = Logger.create('toggleEditorPlugin');
|
||||
|
||||
export const declaration: CommandDeclaration = {
|
||||
name: 'toggleEditorPlugin',
|
||||
label: () => _('Toggle editor plugin'),
|
||||
iconName: 'fas fa-eye',
|
||||
};
|
||||
|
||||
export const runtime = (): CommandRuntime => {
|
||||
return {
|
||||
execute: async (context: CommandContext) => {
|
||||
const shownEditorViewIds = Setting.value('plugins.shownEditorViewIds');
|
||||
const { editorPlugin, editorView } = getActivePluginEditorView(context.state.pluginService.plugins);
|
||||
|
||||
if (!editorPlugin) {
|
||||
logger.warn('No editor plugin to toggle to');
|
||||
return;
|
||||
}
|
||||
|
||||
const idx = shownEditorViewIds.indexOf(editorView.id);
|
||||
|
||||
if (idx < 0) {
|
||||
shownEditorViewIds.push(editorView.id);
|
||||
} else {
|
||||
shownEditorViewIds.splice(idx, 1);
|
||||
}
|
||||
|
||||
Setting.setValue('plugins.shownEditorViewIds', shownEditorViewIds);
|
||||
},
|
||||
};
|
||||
};
|
Reference in New Issue
Block a user