mirror of
https://github.com/zadam/trilium.git
synced 2025-11-04 20:36:13 +01:00
feat(command_palette): differentiate tree-based operations
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import appContext, { type CommandNames } from "../components/app_context.js";
|
import appContext, { type CommandNames } from "../components/app_context.js";
|
||||||
import type NoteTreeWidget from "../widgets/note_tree.js";
|
import type NoteTreeWidget from "../widgets/note_tree.js";
|
||||||
|
import { t, translationsInitializedPromise } from "./i18n.js";
|
||||||
import keyboardActions, { Action } from "./keyboard_actions.js";
|
import keyboardActions, { Action } from "./keyboard_actions.js";
|
||||||
|
|
||||||
export interface CommandDefinition {
|
export interface CommandDefinition {
|
||||||
@@ -150,6 +151,7 @@ class CommandRegistry {
|
|||||||
|
|
||||||
private async loadKeyboardActionsAsync() {
|
private async loadKeyboardActionsAsync() {
|
||||||
try {
|
try {
|
||||||
|
await translationsInitializedPromise;
|
||||||
const actions = await keyboardActions.getActions();
|
const actions = await keyboardActions.getActions();
|
||||||
this.registerKeyboardActions(actions);
|
this.registerKeyboardActions(actions);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -172,10 +174,15 @@ class CommandRegistry {
|
|||||||
// Get the primary shortcut (first one in the list)
|
// Get the primary shortcut (first one in the list)
|
||||||
const primaryShortcut = action.effectiveShortcuts?.[0];
|
const primaryShortcut = action.effectiveShortcuts?.[0];
|
||||||
|
|
||||||
|
let name = action.friendlyName;
|
||||||
|
if (action.scope === "note-tree") {
|
||||||
|
name = t("command_palette.tree-action-name", { name: action.friendlyName });
|
||||||
|
}
|
||||||
|
|
||||||
// Create a command definition from the keyboard action
|
// Create a command definition from the keyboard action
|
||||||
const commandDef: CommandDefinition = {
|
const commandDef: CommandDefinition = {
|
||||||
id: action.actionName,
|
id: action.actionName,
|
||||||
name: action.friendlyName,
|
name,
|
||||||
description: action.description,
|
description: action.description,
|
||||||
icon: action.iconClass,
|
icon: action.iconClass,
|
||||||
shortcut: primaryShortcut ? this.formatShortcut(primaryShortcut) : undefined,
|
shortcut: primaryShortcut ? this.formatShortcut(primaryShortcut) : undefined,
|
||||||
|
|||||||
@@ -6,6 +6,11 @@ import type { Locale } from "@triliumnext/commons";
|
|||||||
|
|
||||||
let locales: Locale[] | null;
|
let locales: Locale[] | null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A deferred promise that resolves when translations are initialized.
|
||||||
|
*/
|
||||||
|
export let translationsInitializedPromise = jQuery.Deferred();
|
||||||
|
|
||||||
export async function initLocale() {
|
export async function initLocale() {
|
||||||
const locale = (options.get("locale") as string) || "en";
|
const locale = (options.get("locale") as string) || "en";
|
||||||
|
|
||||||
@@ -19,6 +24,8 @@ export async function initLocale() {
|
|||||||
},
|
},
|
||||||
returnEmptyString: false
|
returnEmptyString: false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
translationsInitializedPromise.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getAvailableLocales() {
|
export function getAvailableLocales() {
|
||||||
|
|||||||
@@ -1987,5 +1987,8 @@
|
|||||||
"delete-column-confirmation": "Are you sure you want to delete this column? The corresponding attribute will be deleted in the notes under this column as well.",
|
"delete-column-confirmation": "Are you sure you want to delete this column? The corresponding attribute will be deleted in the notes under this column as well.",
|
||||||
"new-item": "New item",
|
"new-item": "New item",
|
||||||
"add-column": "Add Column"
|
"add-column": "Add Column"
|
||||||
|
},
|
||||||
|
"command_palette": {
|
||||||
|
"tree-action-name": "Tree: {{name}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user