feat(command_palette): differentiate tree-based operations

This commit is contained in:
Elian Doran
2025-07-27 21:47:30 +03:00
parent e8b16287e0
commit 1565a0fd80
3 changed files with 18 additions and 1 deletions

View File

@@ -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,

View File

@@ -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() {

View File

@@ -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}}"
} }
} }