branch: elpa/meow commit c693c48a2fa106790389015673a7b01526862b00 Author: eshrh <e...@gatech.edu> Commit: eshrh <e...@gatech.edu>
meow-shims: add shim for ddskk (meow-prev) Adds a shim for ddskk so that meow-prev works. meow-prev calls C-p which is overriden by ddskk. Fixes #540. See this issue for details. --- meow-shims.el | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/meow-shims.el b/meow-shims.el index c2f277f7a8..fdc6b09d2f 100644 --- a/meow-shims.el +++ b/meow-shims.el @@ -302,6 +302,27 @@ Argument ENABLE non-nil means turn on." (advice-add 'quail-input-method :around 'meow--input-method-advice) (advice-remove 'quail-input-method 'meow--input-method-advice))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ddskk + +(defvar meow--ddskk-setup nil) +(defun meow--ddskk-skk-previous-candidate-advice (fnc &optional arg) + (if (and (not (eq skk-henkan-mode 'active)) + (not (eq last-command 'skk-kakutei-henkan)) + last-command-event + (eq last-command-event + (seq-first (car (where-is-internal + 'meow-prev + meow-normal-state-keymap))))) + (previous-line) + (funcall func arg))) + +(defun meow--setup-ddskk (enable) + (setq meow--ddskk-setup enable) + (if enable + (advice-add 'skk-previous-candidate :around + 'meow--ddskk-skk-previous-candidate-advice))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; polymode @@ -348,7 +369,8 @@ Argument ENABLE non-nil means turn on." (eval-after-load "which-key" (lambda () (meow--setup-which-key t))) (eval-after-load "undo-tree" (lambda () (meow--setup-undo-tree t))) (eval-after-load "diff-hl" (lambda () (meow--setup-diff-hl t))) - (eval-after-load "quail" (lambda () (meow--setup-input-method t)))) + (eval-after-load "quail" (lambda () (meow--setup-input-method t))) + (eval-after-load "skk" (lambda () (meow--setup-ddskk t)))) (defun meow--disable-shims () "Remove shim setups." @@ -363,7 +385,8 @@ Argument ENABLE non-nil means turn on." (when meow--cider-setup (meow--setup-cider nil)) (when meow--which-key-setup (meow--setup-which-key nil)) (when meow--diff-hl-setup (meow--setup-diff-hl nil)) - (when meow--input-method-setup (meow--setup-input-method nil))) + (when meow--input-method-setup (meow--setup-input-method nil)) + (when meow--ddskk-setup (meow--setup-ddskk nil))) ;;; meow-shims.el ends here (provide 'meow-shims)