diff --git a/evil-collection-bookmark.el b/evil-collection-bookmark.el index 9b43877..bcf92a4 100644 --- a/evil-collection-bookmark.el +++ b/evil-collection-bookmark.el @@ -27,6 +27,7 @@ ;; Evil bindings for bookmarks. ;;; Code: +(require 'evil-collection) (require 'bookmark) (defconst evil-collection-bookmark-maps '(bookmark-bmenu-mode-map)) diff --git a/evil-collection-buff-menu.el b/evil-collection-buff-menu.el index 5e740c0..5388487 100644 --- a/evil-collection-buff-menu.el +++ b/evil-collection-buff-menu.el @@ -27,12 +27,12 @@ ;;; Bindings for `buff-menu'. ;;; Code: +(require 'evil-collection) +(require 'tabulated-list) ;; `evil-collection-buff-menu-Buffer-menu-unmark-all' ;; Code taken from emacs-26 repository. -(require 'evil-collection) -(require 'tabulated-list) (defconst evil-collection-buff-menu-maps '(Buffer-menu-mode-map)) diff --git a/evil-collection-calc.el b/evil-collection-calc.el index b8815e3..d65fa6a 100644 --- a/evil-collection-calc.el +++ b/evil-collection-calc.el @@ -26,14 +26,14 @@ ;; Evil bindings for calc. ;;; Code: -(require 'evil-collection-util) +(require 'evil-collection) (require 'calc) (defconst evil-collection-calc-maps '(calc-mode-map)) (defun evil-collection-calc-setup () "Set up `evil' bindings for `calc'." - (evil-collection-util-inhibit-insert-state calc-mode-map) + (evil-collection-inhibit-insert-state 'calc-mode-map) (evil-set-initial-state 'calc-mode 'normal) ;; Calc sets up its bindings just-in-time for its "extensions". I don't think diff --git a/evil-collection-cmake-mode.el b/evil-collection-cmake-mode.el index 1a0d214..f15bbc5 100644 --- a/evil-collection-cmake-mode.el +++ b/evil-collection-cmake-mode.el @@ -25,10 +25,11 @@ ;;; Commentary: ;;; Bindings for `cmake-mode' + +;;; Code: (require 'evil-collection) (require 'cmake-mode nil t) -;;; Code: (defvar cmake-tab-width) (defun evil-collection-cmake-mode-set-evil-shift-width () "Set `evil-shift-width' according to `cmake-tab-with'." diff --git a/evil-collection-elfeed.el b/evil-collection-elfeed.el index 2948b1e..6da2e89 100644 --- a/evil-collection-elfeed.el +++ b/evil-collection-elfeed.el @@ -28,7 +28,7 @@ ;;; Code: (require 'elfeed nil t) -(require 'evil-collection-util) +(require 'evil-collection) (defvar elfeed-search-mode-map) (defvar elfeed-show-mode-map) @@ -39,7 +39,7 @@ (defun evil-collection-elfeed-setup () "Set up `evil' bindings for `elfeed'." - (evil-collection-util-inhibit-insert-state elfeed-search-mode-map) + (evil-collection-inhibit-insert-state 'elfeed-search-mode-map) (evil-set-initial-state 'elfeed-search-mode 'normal) (evil-collection-define-key 'normal 'elfeed-search-mode-map ;; open @@ -71,7 +71,7 @@ "U" 'elfeed-search-tag-all-unread "u" 'elfeed-search-untag-all-unread) - (evil-collection-util-inhibit-insert-state elfeed-show-mode-map) + (evil-collection-inhibit-insert-state 'elfeed-show-mode-map) (evil-set-initial-state 'elfeed-show-mode 'normal) (evil-collection-define-key 'normal 'elfeed-show-mode-map (kbd "S-") 'elfeed-show-visit diff --git a/evil-collection-emms.el b/evil-collection-emms.el index fa81c15..6778e67 100644 --- a/evil-collection-emms.el +++ b/evil-collection-emms.el @@ -28,7 +28,7 @@ ;;; Code: (require 'emms nil t) -(require 'evil-collection-util) +(require 'evil-collection) (declare-function emms-with-inhibit-read-only-t "emms") (declare-function emms-playlist-mode-correct-previous-yank "emms-playlist-mode") @@ -73,7 +73,7 @@ The return value is the yanked text." "Set up `evil' bindings for `emms-browser'." ;; TODO: Why doesn't evil-set-initial-state work with emms-browser-mode? - (evil-collection-util-inhibit-insert-state emms-browser-mode-map) + (evil-collection-inhibit-insert-state 'emms-browser-mode-map) (add-hook 'emms-browser-mode-hook 'evil-normal-state) (evil-collection-define-key 'normal 'emms-browser-mode-map ;; playback controls diff --git a/evil-collection-etags-select.el b/evil-collection-etags-select.el index 6fb86d7..0f33e4b 100644 --- a/evil-collection-etags-select.el +++ b/evil-collection-etags-select.el @@ -25,10 +25,11 @@ ;;; Commentary: ;;; Bindings for `etags-select'. + +;;; Code: (require 'evil-collection) (require 'etags-select nil t) -;;; Code: (defun evil-collection-etags-select-setup () "Set up `evil' bindings for `etags-select'.." ;; FIXME: probably etags-select should be recomended in docs diff --git a/evil-collection-eww.el b/evil-collection-eww.el index 8ad772a..c0f7cc2 100644 --- a/evil-collection-eww.el +++ b/evil-collection-eww.el @@ -28,7 +28,7 @@ ;;; Code: (require 'eww) -(require 'evil-collection-util) +(require 'evil-collection) (defvar evil-collection-eww-maps '(eww-mode-map eww-history-mode-map @@ -97,7 +97,7 @@ (setq evil-inhibit-operator t) #'eww-copy-page-url)))) - (evil-collection-util-inhibit-insert-state eww-history-mode-map) + (evil-collection-inhibit-insert-state 'eww-history-mode-map) (evil-set-initial-state 'eww-history-mode 'normal) (evil-collection-define-key 'normal 'eww-history-mode-map (kbd "") 'eww-history-browse @@ -108,7 +108,7 @@ "ZQ" 'quit-window "ZZ" 'quit-window) - (evil-collection-util-inhibit-insert-state eww-buffers-mode-map) + (evil-collection-inhibit-insert-state 'eww-buffers-mode-map) (evil-set-initial-state 'eww-buffers-mode 'normal) (evil-collection-define-key 'normal 'eww-buffers-mode-map "D" 'eww-buffer-kill @@ -124,7 +124,7 @@ "ZQ" 'quit-window "ZZ" 'quit-window) - (evil-collection-util-inhibit-insert-state eww-bookmark-mode-map) + (evil-collection-inhibit-insert-state 'eww-bookmark-mode-map) (evil-set-initial-state 'eww-bookmark-mode 'normal) (evil-collection-define-key 'normal 'eww-bookmark-mode-map "D" 'eww-bookmark-kill diff --git a/evil-collection-guix.el b/evil-collection-guix.el index 2b57a1a..0ee2dab 100644 --- a/evil-collection-guix.el +++ b/evil-collection-guix.el @@ -46,7 +46,7 @@ (defmacro evil-collection-guix-set (map) "Set common bindings in MAP." `(progn - (evil-collection-util-inhibit-insert-state ,map) + (evil-collection-inhibit-insert-state ',map) (evil-collection-define-key 'normal ',map ;; motion (kbd "SPC") 'scroll-up-command @@ -176,7 +176,7 @@ (evil-collection-guix-set guix-hydra-build-info-mode-map) - (evil-collection-util-inhibit-insert-state guix-build-log-mode-map) + (evil-collection-inhibit-insert-state 'guix-build-log-mode-map) (evil-collection-define-key 'normal 'guix-build-log-mode-map ;; motion (kbd "SPC") 'scroll-up-command diff --git a/evil-collection-help.el b/evil-collection-help.el index 78a1e5d..f446bb9 100644 --- a/evil-collection-help.el +++ b/evil-collection-help.el @@ -27,7 +27,7 @@ ;; Evil bindings for `help-mode'. ;;; Code: -(require 'evil-collection-util) +(require 'evil-collection) (require 'help-mode) (defconst evil-collection-help-maps '(help-mode-map)) @@ -35,7 +35,7 @@ (defun evil-collection-help-setup () "Set up `evil' bindings for `help'." (evil-set-initial-state 'help-mode 'normal) - (evil-collection-util-inhibit-insert-state help-mode-map) + (evil-collection-inhibit-insert-state 'help-mode-map) (evil-collection-define-key 'normal 'help-mode-map ;; motion (kbd "SPC") 'scroll-up-command diff --git a/evil-collection-indium.el b/evil-collection-indium.el index f352794..23e0c38 100644 --- a/evil-collection-indium.el +++ b/evil-collection-indium.el @@ -27,6 +27,7 @@ ;; Bindings for `indium'. ;;; Code: +(require 'evil-collection) (require 'evil-collection-settings) (require 'indium nil t) diff --git a/evil-collection-info.el b/evil-collection-info.el index d2bac7a..bb303ac 100644 --- a/evil-collection-info.el +++ b/evil-collection-info.el @@ -28,7 +28,7 @@ ;; This package uses normal state and redefines everything. ;;; Code: -(require 'evil-collection-util) +(require 'evil-collection) (require 'evil-collection-evil-search) (require 'info) @@ -36,7 +36,7 @@ (defun evil-collection-info-setup () "Set up `evil' bindings for `info-mode'." - (evil-collection-util-inhibit-insert-state Info-mode-map) + (evil-collection-inhibit-insert-state 'Info-mode-map) (evil-set-initial-state 'Info-mode 'normal) (evil-collection-define-key 'normal 'Info-mode-map (kbd "") 'Info-next-reference diff --git a/evil-collection-integration.el b/evil-collection-integration.el index 1284508..7d73ab5 100644 --- a/evil-collection-integration.el +++ b/evil-collection-integration.el @@ -32,15 +32,12 @@ ;; Maintainer: Vegard Øye ;;; Code: - (require 'evil-maps) (require 'evil-core) (require 'evil-macros) (require 'evil-types) (require 'evil-repeat) -;;; Code: - ;;; Evilize some commands ;; unbound keys should be ignored diff --git a/evil-collection-p4.el b/evil-collection-p4.el index cb90684..2117ce7 100644 --- a/evil-collection-p4.el +++ b/evil-collection-p4.el @@ -28,6 +28,7 @@ ;;; Code: (require 'p4 nil t) +(require 'evil-collection) (defvar p4-basic-mode-map) @@ -52,6 +53,5 @@ "G" 'p4-bottom-of-buffer "=" 'delete-other-windows)) -;;; Code: (provide 'evil-collection-p4) ;;; evil-collection-p4.el ends here diff --git a/evil-collection-paren.el b/evil-collection-paren.el index 49e4049..4cfe3ce 100644 --- a/evil-collection-paren.el +++ b/evil-collection-paren.el @@ -25,8 +25,10 @@ ;;; Commentary: ;;; Bindings for `paren'. -(require 'evil-collection) + +;;; Code: (require 'paren) +(require 'evil-collection) (defun evil-collection-paren-show-paren-function (f &rest args) "Integrate `show-paren-function' with `evil'." @@ -65,7 +67,6 @@ (let ((ov (and (boundp ov) (symbol-value ov)))) (when (overlayp ov) (delete-overlay ov))))))))) -;;; Code: (defun evil-collection-paren-setup () "Set up `evil' bindings for `paren'." (advice-add 'show-paren-function diff --git a/evil-collection-pdf.el b/evil-collection-pdf.el index 8398588..0f121c1 100644 --- a/evil-collection-pdf.el +++ b/evil-collection-pdf.el @@ -27,7 +27,7 @@ ;; Evil bindings for pdf-tools. ;;; Code: -(require 'evil-collection-util) +(require 'evil-collection) (require 'pdf-tools nil t) (require 'pdf-view nil t) @@ -89,7 +89,7 @@ (defun evil-collection-pdf-setup () "Set up `evil' bindings for `pdf-view'." - (evil-collection-util-inhibit-insert-state pdf-view-mode-map) + (evil-collection-inhibit-insert-state 'pdf-view-mode-map) (evil-set-initial-state 'pdf-view-mode 'normal) (evil-collection-define-key 'normal 'pdf-view-mode-map ;; motion @@ -180,7 +180,7 @@ "ZQ" 'kill-this-buffer "ZZ" 'quit-window) - (evil-collection-util-inhibit-insert-state pdf-outline-buffer-mode-map) + (evil-collection-inhibit-insert-state 'pdf-outline-buffer-mode-map) (evil-set-initial-state 'pdf-outline-buffer-mode 'normal) (evil-collection-define-key 'normal 'pdf-outline-buffer-mode-map ;; open @@ -203,7 +203,7 @@ "ZQ" 'quit-window "ZZ" 'pdf-outline-quit-and-kill) - (evil-collection-util-inhibit-insert-state pdf-occur-buffer-mode-map) + (evil-collection-inhibit-insert-state 'pdf-occur-buffer-mode-map) (evil-set-initial-state 'pdf-occur-buffer-mode 'normal) (evil-collection-define-key 'normal 'pdf-occur-buffer-mode-map ;; open diff --git a/evil-collection-proced.el b/evil-collection-proced.el index d3a1327..3cdfc5b 100644 --- a/evil-collection-proced.el +++ b/evil-collection-proced.el @@ -27,14 +27,14 @@ ;; Evil bindings for proced. ;;; Code: -(require 'evil-collection-util) +(require 'evil-collection) (require 'proced) (defconst evil-collection-proced-maps '(proced-mode-map)) (defun evil-collection-proced-setup () "Set up `evil' bindings for `proced'." - (evil-collection-util-inhibit-insert-state proced-mode-map) + (evil-collection-inhibit-insert-state 'proced-mode-map) (evil-set-initial-state 'proced-mode 'normal) (evil-collection-define-key 'normal 'proced-mode-map (kbd "") 'proced-refine diff --git a/evil-collection-transmission.el b/evil-collection-transmission.el index bdb438e..fb7e9e9 100644 --- a/evil-collection-transmission.el +++ b/evil-collection-transmission.el @@ -28,7 +28,7 @@ ;; Evil bindings for `transmission'. ;;; Code: -(require 'evil-collection-util) +(require 'evil-collection) (require 'transmission nil t) (defvar transmission-mode-map) @@ -44,7 +44,7 @@ (defun evil-collection-transmission-setup () "Set up `evil' bindings for `transmission'." - (evil-collection-util-inhibit-insert-state transmission-mode-map) + (evil-collection-inhibit-insert-state 'transmission-mode-map) (evil-set-initial-state 'transmission-mode 'normal) (evil-collection-define-key 'normal 'transmission-mode-map ;; motion @@ -84,7 +84,7 @@ "ZQ" 'evil-quit "ZZ" 'transmission-quit) - (evil-collection-util-inhibit-insert-state transmission-files-mode-map) + (evil-collection-inhibit-insert-state 'transmission-files-mode-map) (evil-set-initial-state 'transmission-files-mode 'normal) (evil-collection-define-key 'normal 'transmission-files-mode-map (kbd "SPC") 'scroll-up-command @@ -125,7 +125,7 @@ "ZQ" 'evil-quit "ZZ" 'transmission-quit) - (evil-collection-util-inhibit-insert-state transmission-info-mode-map) + (evil-collection-inhibit-insert-state 'transmission-info-mode-map) (evil-set-initial-state 'transmission-info-mode 'normal) (evil-collection-define-key 'normal 'transmission-info-mode-map "p" 'transmission-peers @@ -155,7 +155,7 @@ #'transmission-copy-magnet)))) - (evil-collection-util-inhibit-insert-state transmission-peers-mode-map) + (evil-collection-inhibit-insert-state 'transmission-peers-mode-map) (evil-set-initial-state 'transmission-peers-mode 'normal) (evil-collection-define-key 'normal 'transmission-peers-mode-map ;; sort diff --git a/evil-collection-util.el b/evil-collection-util.el deleted file mode 100644 index ea2c0e7..0000000 --- a/evil-collection-util.el +++ /dev/null @@ -1,62 +0,0 @@ -;;; evil-collection-util.el --- Utilities for `evil-collection'. -*- lexical-binding: t -*- - -;; Copyright (C) 2017 James Nguyen - -;; Author: James Nguyen -;; Maintainer: James Nguyen -;; Pierre Neidhardt -;; URL: https://github.com/jojojames/evil-collection -;; Version: 0.0.1 -;; Package-Requires: ((emacs "25.1")) -;; Keywords: evil, emacs, 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: -;;; Bindings for - -;;; Code: -(require 'evil-collection) - -(defmacro evil-collection-util-inhibit-insert-state (map) - "Unmap insertion keys from normal state. -This is particularly useful for read-only modes." - `(evil-collection-define-key - 'normal ',map - [remap evil-append] #'ignore - [remap evil-append-line] #'ignore - [remap evil-insert] #'ignore - [remap evil-insert-line] #'ignore - [remap evil-change] #'ignore - [remap evil-change-line] #'ignore - [remap evil-substitute] #'ignore - [remap evil-change-whole-line] #'ignore - [remap evil-delete] #'ignore - [remap evil-delete-line] #'ignore - [remap evil-delete-char] #'ignore - [remap evil-delete-backward-char] #'ignore - [remap evil-replace] #'ignore - [remap evil-replace-state] #'ignore - [remap evil-open-below] #'ignore - [remap evil-open-above] #'ignore - [remap evil-paste-after] #'ignore - [remap evil-paste-before] #'ignore - [remap evil-join] #'ignore - [remap evil-indent] #'ignore - [remap evil-shift-left] #'ignore - [remap evil-shift-right] #'ignore - [remap evil-invert-char] #'ignore)) - -(provide 'evil-collection-util) -;;; evil-collection-util.el ends here diff --git a/evil-collection-ztree.el b/evil-collection-ztree.el index 7a3e62c..e7501be 100644 --- a/evil-collection-ztree.el +++ b/evil-collection-ztree.el @@ -26,7 +26,7 @@ ;; Evil bindings for ztree. ;;; Code: -(require 'evil-collection-util) +(require 'evil-collection) (require 'ztree nil t) (defvar ztree-mode-map) @@ -37,7 +37,7 @@ (defun evil-collection-ztree-setup () "Set up `evil' bindings for `ztree'." - (evil-collection-util-inhibit-insert-state ztree-mode-map) + (evil-collection-inhibit-insert-state 'ztree-mode-map) (evil-set-initial-state 'ztree-mode 'normal) (evil-collection-define-key 'normal 'ztree-mode-map (kbd "") 'ztree-jump-side @@ -54,7 +54,7 @@ "ZQ" 'quit-window "ZZ" 'quit-window) - (evil-collection-util-inhibit-insert-state ztreediff-mode-map) + (evil-collection-inhibit-insert-state 'ztreediff-mode-map) (evil-set-initial-state 'ztree-mode 'normal) (evil-define-minor-mode-key 'normal 'ztreediff-mode "C" 'ztree-diff-copy diff --git a/evil-collection.el b/evil-collection.el index a8110a5..64d3ab2 100644 --- a/evil-collection.el +++ b/evil-collection.el @@ -248,6 +248,34 @@ function adds the ability to filter keys on the basis of ',state ,map-sym ',filtered-bindings)))) (add-hook 'after-load-functions fun t)))))) +(defun evil-collection-inhibit-insert-state (map-sym) + "Unmap insertion keys from normal state. +This is particularly useful for read-only modes." + (evil-collection-define-key 'normal map-sym + [remap evil-append] #'ignore + [remap evil-append-line] #'ignore + [remap evil-insert] #'ignore + [remap evil-insert-line] #'ignore + [remap evil-change] #'ignore + [remap evil-change-line] #'ignore + [remap evil-substitute] #'ignore + [remap evil-change-whole-line] #'ignore + [remap evil-delete] #'ignore + [remap evil-delete-line] #'ignore + [remap evil-delete-char] #'ignore + [remap evil-delete-backward-char] #'ignore + [remap evil-replace] #'ignore + [remap evil-replace-state] #'ignore + [remap evil-open-below] #'ignore + [remap evil-open-above] #'ignore + [remap evil-paste-after] #'ignore + [remap evil-paste-before] #'ignore + [remap evil-join] #'ignore + [remap evil-indent] #'ignore + [remap evil-shift-left] #'ignore + [remap evil-shift-right] #'ignore + [remap evil-invert-char] #'ignore)) + (defun evil-collection--binding-lessp (a b) "Comparison function used to sort bindings of the form (state key def)." (let ((a-state (symbol-name (nth 0 a)))