mirror of
https://github.com/logseq/logseq.git
synced 2026-04-28 16:15:21 +00:00
Enhance/shortcuts (#9803)
* refactor(shortcuts): simplify to build handler category map * fix(shortcuts): redundant re-mount for the pdf shortcuts * refactor(shortcuts): simplify names * refactor(shortcuts): simplify user keynames * fix(shortcuts): persist inited state for dev mode * refactor(shortcuts): simplify handlers installation * refactor(shortcuts): optimize shortcuts mixin * fix: incorrect function ref * refactor(shortcuts): shortcuts mixin * fix(shortcuts): incorrect initialization for the pdf shortcut handler * refactor(shortcuts): optimize binding keys map * refactor(shortcuts): optimize shortcuts conflicts detection * refactor(shortcuts): optimize binding ids map * refactor(shortcuts): WIP the new keymap page * refactor(shortcuts): WIP the new keymap related components * feat(shortcuts): WIP fuzzy search for the shortcuts * refactor(shortcuts): WIP the new keymap related components * feat(shortcuts): WIP the new shorcuts record component * feat(shortcuts): WIP the new shorcuts record component * feat(shortcuts): WIP check shortcut conflicts component * feat(shortcuts): WIP the new shorcuts record component * refactor(shortcuts): WIP persist user shortcuts * fix(shortcuts): detection for the conflicts * feat(shortcuts): WIP detection for the conflicts * feat(shortcuts): WIP persist user shortcuts * refactor(shortcuts): add unit tests * enhance(ux): search pane for the shortcuts * feat(shortcuts): remove the existent shortcut item * feat(shortcuts): fold/unfold categories * feat(shortcuts): add shortcuts filters * enhance(shortcuts): resove binding map description * enhance(shortcuts): reactive category shortcuts * enhance(shortcuts): register api for plugins * feat(shortcuts): add keyboard shortcuts filters * feat(shortcuts): impl keyboard shortcuts filters * enhance(shortcuts): leader keys for the shortcut conflicts detection * enhance(tests): leader keys conflicts for the shortucts * enhance(shortcuts): parse conflicts from current binding list * enhance(ui): polish the component of the restore shortcut action * enhance(shortcuts): get conflicts with specific handler id * enhance(shortcuts): polish the confilts component * enhance(shortcuts): polish keymap conflicts component * enhance(shortcuts): ux for handling shorcuts conflicts * enhance(ui): polish notifications cp * fix(shortcuts): remove reduplicate shortcuts for category * enhance(shortcuts): polish ux for handling shorcuts conflicts * chore(plugin): build libs core * enhance(plugin): support shortcut command lifecycle hooks * enhance(plugin): support shortcut command lifecycle hooks * chore(plugin): build libs core * enhance(shortcuts): support shortcuts saved to global config * enhance(shortcuts): support shortcuts be saved to global config * feat(shortcuts): support keymap manager to global settings * enhance(shortcuts): shortcut to open keymap settings * fix(units): tests * fix: lints * enhance(shortcuts): unlisten all shortcuts * fix: lints * fix: lints * fix(units): tests * fix(units): tests * fix(units): tests * enhance(shortcuts): unlisten/listen all shortcuts * enhance(shortcuts): polish conflicts component * fix(ui): modal size * fix(ui): modal panel container * enhance(shortcuts): i18n * enhance(ui): layout of the shortcuts recorder component * fix(lint): i18n * enhance(ui): keyboard icon for the keymap settings tab * fix(shortcuts): incorrect filters for the collaspsed shortcuts * enhance(ui): polish details for the keymap settings * enhance(ui): polish details for the keymap settings * fix(shortcuts): get shortcut description error when the associated handler-id not exist * fix(ui): the shortcut disabled label overlaps with section headers. * refactor(shortcuts): names * enhance(ui): filter icons
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
[logseq.graph-parser.mldoc :as gp-mldoc]
|
||||
[frontend.handler.notification :as notification]
|
||||
[frontend.handler.common.plugin :as plugin-common-handler]
|
||||
[frontend.modules.shortcut.utils :as shortcut-utils]
|
||||
[frontend.storage :as storage]
|
||||
[camel-snake-kebab.core :as csk]
|
||||
[frontend.state :as state]
|
||||
@@ -175,7 +176,7 @@
|
||||
|
||||
(defn has-setting-schema?
|
||||
[id]
|
||||
(when-let [pl (and id (get-plugin-inst (name id)))]
|
||||
(when-let [^js pl (and id (get-plugin-inst (name id)))]
|
||||
(boolean (.-settingsSchema pl))))
|
||||
|
||||
(defn get-enabled-plugins-if-setting-schema
|
||||
@@ -297,7 +298,7 @@
|
||||
(let [id (keyword (str "plugin." pid "/" key))
|
||||
binding (:binding keybinding)
|
||||
binding (some->> (if (string? binding) [binding] (seq binding))
|
||||
(map util/normalize-user-keyname))
|
||||
(map shortcut-utils/undecorate-binding))
|
||||
binding (if util/mac?
|
||||
(or (:mac keybinding) binding) binding)
|
||||
mode (or (:mode keybinding) :global)
|
||||
@@ -658,6 +659,15 @@
|
||||
:remove disj)]
|
||||
(save-plugin-preferences! {:pinnedToolbarItems (op-fn pinned (name key))}))))
|
||||
|
||||
(defn hook-lifecycle-fn!
|
||||
[type f & args]
|
||||
(when (and type (fn? f))
|
||||
(when config/lsp-enabled?
|
||||
(hook-plugin-app (str :before-command-invoked type) nil))
|
||||
(apply f args)
|
||||
(when config/lsp-enabled?
|
||||
(hook-plugin-app (str :after-command-invoked type) nil))))
|
||||
|
||||
;; components
|
||||
(rum/defc lsp-indicator < rum/reactive
|
||||
[]
|
||||
@@ -788,7 +798,6 @@
|
||||
(callback)
|
||||
(init-plugins! callback)))
|
||||
|
||||
|
||||
(comment
|
||||
{:pending (count (:plugin/updates-pending @state/state))
|
||||
:auto-checking? (boolean (:plugin/updates-auto-checking? @state/state))
|
||||
|
||||
Reference in New Issue
Block a user