From bf036e5a3ac3d954df50b78841be907035f0d9f9 Mon Sep 17 00:00:00 2001 From: condy Date: Wed, 17 Apr 2024 04:02:52 +0800 Subject: [PATCH] kmacro: initial support --- evil-collection.el | 1 + modes/kmacro/evil-collection-kmacro.el | 58 ++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 modes/kmacro/evil-collection-kmacro.el diff --git a/evil-collection.el b/evil-collection.el index 35658f4..d2eda2b 100644 --- a/evil-collection.el +++ b/evil-collection.el @@ -238,6 +238,7 @@ See `evil-collection-init' and `evil-collection--modes-with-delayed-setup'." info ivy js2-mode + ,@(when (>= emacs-major-version 30) '(kmacro)) leetcode lispy lms diff --git a/modes/kmacro/evil-collection-kmacro.el b/modes/kmacro/evil-collection-kmacro.el new file mode 100644 index 0000000..b7c7aff --- /dev/null +++ b/modes/kmacro/evil-collection-kmacro.el @@ -0,0 +1,58 @@ +;;; evil-collection-kmacro.el --- Evil bindings for kmacro menu -*- lexical-binding: t -*- + +;; Copyright (C) 2024 Zhiwei Chen + +;; Author: Zhiwei Chen +;; Maintainer: James Nguyen +;; Pierre Neidhardt +;; URL: https://github.com/emacs-evil/evil-collection +;; Version: 0.0.1 +;; Package-Requires: ((emacs "30")) +;; Keywords: evil, kmacro, tools + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: +;; Evil bindings for kmacro menu. + +;;; Code: + +(require 'evil-collection) +(require 'kmacro) + +(defconst evil-collection-kmacro-maps '(kmacro-menu-mode-map)) + +(defun evil-collection-kmacro-setup () + "Set up `evil' bindings to `tab-bar'." + (evil-set-initial-state 'kmacro-menu-mode 'normal) + (evil-collection-define-key 'normal 'kmacro-menu-mode-map + ;; Edit + (kbd "RET") 'kmacro-menu-edit-column + "#" 'kmacro-menu-edit-position + "c" 'kmacro-menu-edit-counter + "f" 'kmacro-menu-edit-format + "e" 'kmacro-menu-edit-keys + + ;; Mark + "d" 'kmacro-menu-flag-for-deletion + "m" 'kmacro-menu-mark + "u" 'kmacro-menu-unmark + "U" 'kmacro-menu-unmark-all + + "x" 'kmacro-menu-do-flagged-delete + "C" 'kmacro-menu-do-copy + "D" 'kmacro-menu-do-delete)) + +(provide 'evil-collection-kmacro) +;;; evil-collection-kmacro.el ends here