From 6d8dfad4e72f00edb2c3f67ab41d8c7956d4b6c7 Mon Sep 17 00:00:00 2001 From: Peter Fajdiga Date: Fri, 6 Sep 2024 22:56:35 +0200 Subject: [PATCH] keyBindings/definition.ts: use macros in strings --- src/generators/docs/keyBindings.ts | 5 +++-- src/generators/docs/keyBindingsBbcode/main.ts | 4 ++-- src/generators/docs/keyBindingsFmt/main.ts | 4 ++-- .../docs/keyBindingsMarkdown/main.ts | 4 ++-- src/lib/keyBindings/definition.ts | 20 +++++++++---------- src/lib/keyBindings/loader.ts | 4 ++-- src/lib/utils/strings.ts | 3 +++ 7 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 src/lib/utils/strings.ts diff --git a/src/generators/docs/keyBindings.ts b/src/generators/docs/keyBindings.ts index 68a07fb..09d5b6a 100644 --- a/src/generators/docs/keyBindings.ts +++ b/src/generators/docs/keyBindings.ts @@ -1,5 +1,6 @@ -function formatComment(comment: string | undefined) { - return comment === undefined ? "" : ` (${comment})`; +function formatDescription(item: {description: string, comment?: string}) { + const suffix = item.comment === undefined ? "" : ` (${item.comment})`; + return `${applyMacro(item.description, "N")}${suffix}`; } function printCols(...columns: (string[] | string)[]) { diff --git a/src/generators/docs/keyBindingsBbcode/main.ts b/src/generators/docs/keyBindingsBbcode/main.ts index 1279123..bcb7079 100644 --- a/src/generators/docs/keyBindingsBbcode/main.ts +++ b/src/generators/docs/keyBindingsBbcode/main.ts @@ -1,12 +1,12 @@ console.log(`[list]`); for (const binding of keyBindings) { - console.log(` [*] ${binding.defaultKeySequence} — ${binding.description}${formatComment(binding.comment)}`); + console.log(` [*] ${binding.defaultKeySequence} — ${formatDescription(binding)}`); } for (const binding of numKeyBindings) { const numPrefix = binding.fKeys ? "F" : ""; - console.log(` [*] ${binding.defaultModifiers}+${numPrefix}[N] — ${binding.description}N${formatComment(binding.comment)}`); + console.log(` [*] ${binding.defaultModifiers}+${numPrefix}[N] — ${formatDescription(binding)}`); } console.log(`[/list]`); diff --git a/src/generators/docs/keyBindingsFmt/main.ts b/src/generators/docs/keyBindingsFmt/main.ts index 7d69157..7c1a617 100644 --- a/src/generators/docs/keyBindingsFmt/main.ts +++ b/src/generators/docs/keyBindingsFmt/main.ts @@ -7,8 +7,8 @@ const colLeft = [ ]; const colRight = [ - ...keyBindings.map((binding: KeyBinding) => `${binding.description}${formatComment(binding.comment)}`), - ...numKeyBindings.map((binding: NumKeyBinding) => `${binding.description}N${formatComment(binding.comment)}`), + ...keyBindings.map(formatDescription), + ...numKeyBindings.map(formatDescription), ]; printCols(colLeft, " ", colRight); diff --git a/src/generators/docs/keyBindingsMarkdown/main.ts b/src/generators/docs/keyBindingsMarkdown/main.ts index 8fb6af1..03f5c32 100644 --- a/src/generators/docs/keyBindingsMarkdown/main.ts +++ b/src/generators/docs/keyBindingsMarkdown/main.ts @@ -11,8 +11,8 @@ const colLeft = [ const colRight = [ "Action", "---", - ...keyBindings.map((binding: KeyBinding) => `${binding.description}${formatComment(binding.comment)}`), - ...numKeyBindings.map((binding: NumKeyBinding) => `${binding.description}N${formatComment(binding.comment)}`), + ...keyBindings.map((binding: KeyBinding) => `${formatDescription(binding)}`), + ...numKeyBindings.map((binding: NumKeyBinding) => `${formatDescription(binding)}`), ]; printCols("| ", colLeft, " | ", colRight, " |"); diff --git a/src/lib/keyBindings/definition.ts b/src/lib/keyBindings/definition.ts index 20972bc..e4d3f0d 100644 --- a/src/lib/keyBindings/definition.ts +++ b/src/lib/keyBindings/definition.ts @@ -187,39 +187,39 @@ function getKeyBindings(world: World, actions: Actions): KeyBinding[] { function getNumKeyBindings(world: World, actions: Actions): NumKeyBinding[] { return [ { - name: "focus-", - description: "Move focus to column ", + name: "focus-{}", + description: "Move focus to column {}", comment: "Clashes with default KDE shortcuts, may require manual remapping", defaultModifiers: "Meta", fKeys: false, action: (i: number) => world.do(actions.focus.partial(i)), }, { - name: "window-move-to-column-", - description: "Move window to column ", + name: "window-move-to-column-{}", + description: "Move window to column {}", comment: "Requires manual remapping according to your keyboard layout, e.g. Meta+Shift+1 -> Meta+!", defaultModifiers: "Meta+Shift", fKeys: false, action: (i: number) => world.doIfTiledFocused(actions.windowMoveToColumn.partial(i)), }, { - name: "column-move-to-column-", - description: "Move column to position ", + name: "column-move-to-column-{}", + description: "Move column to position {}", comment: "Requires manual remapping according to your keyboard layout, e.g. Meta+Ctrl+Shift+1 -> Meta+Ctrl+!", defaultModifiers: "Meta+Ctrl+Shift", fKeys: false, action: (i: number) => world.doIfTiledFocused(actions.columnMoveToColumn.partial(i)), }, { - name: "column-move-to-desktop-", - description: "Move column to desktop ", + name: "column-move-to-desktop-{}", + description: "Move column to desktop {}", defaultModifiers: "Meta+Ctrl+Shift", fKeys: true, action: (i: number) => world.doIfTiledFocused(actions.columnMoveToDesktop.partial(i)), }, { - name: "tail-move-to-desktop-", - description: "Move this and all following columns to desktop ", + name: "tail-move-to-desktop-{}", + description: "Move this and all following columns to desktop {}", defaultModifiers: "Meta+Ctrl+Shift+Alt", fKeys: true, action: (i: number) => world.doIfTiledFocused(actions.tailMoveToDesktop.partial(i)), diff --git a/src/lib/keyBindings/loader.ts b/src/lib/keyBindings/loader.ts index 935b139..967b2ed 100644 --- a/src/lib/keyBindings/loader.ts +++ b/src/lib/keyBindings/loader.ts @@ -43,8 +43,8 @@ function registerNumKeyBindings(shortcutActions: ShortcutAction[], numKeyBinding ""; shortcutActions.push(new ShortcutAction( { - name: numKeyBinding.name + numKey, - description: numKeyBinding.description + numKey, + name: applyMacro(numKeyBinding.name, numKey), + description: applyMacro(numKeyBinding.description, numKey), defaultKeySequence: keySequence, }, catchWrap(() => numKeyBinding.action(i)), diff --git a/src/lib/utils/strings.ts b/src/lib/utils/strings.ts new file mode 100644 index 0000000..e7808b3 --- /dev/null +++ b/src/lib/utils/strings.ts @@ -0,0 +1,3 @@ +function applyMacro(base: string, value: string) { + return base.replace("{}", String(value)); +}