diff --git a/evil-collection.el b/evil-collection.el index 55a7415..2dfd908 100644 --- a/evil-collection.el +++ b/evil-collection.el @@ -53,6 +53,7 @@ doc-view edebug elfeed + elisp-mode elisp-refs emms eshell diff --git a/evil-elisp-mode.el b/evil-elisp-mode.el new file mode 100644 index 0000000..0e5cbf7 --- /dev/null +++ b/evil-elisp-mode.el @@ -0,0 +1,57 @@ +;;; evil-elisp-mode.el --- Bindings for `elisp-mode'. -*- 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, elisp + +;; 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 `elisp-mode'. + +;;; Code: +(require 'elisp-mode) +(require 'evil) + +(defun evil-collection-last-sexp-setup-props (beg end value alt1 alt2) + "Set up text properties for the output of `elisp--eval-last-sexp'. +BEG and END are the start and end of the output in current-buffer. +VALUE is the Lisp value printed, ALT1 and ALT2 are strings for the +alternative printed representations that can be displayed." + (let ((map (make-sparse-keymap))) + (define-key map "\C-m" 'elisp-last-sexp-toggle-display) + (define-key map [down-mouse-2] 'mouse-set-point) + (define-key map [mouse-2] 'elisp-last-sexp-toggle-display) + (evil-define-key 'insert map "\C-m" + (lookup-key (current-global-map) (kbd "RET"))) + (add-text-properties + beg end + `(printed-value (,value ,alt1 ,alt2) + mouse-face highlight + keymap ,map + help-echo "RET, mouse-2: toggle abbreviated display" + rear-nonsticky (mouse-face keymap help-echo + printed-value))))) +(defun evil-elisp-mode-setup () + (advice-add 'last-sexp-setup-props + :override #'evil-collection-last-sexp-setup-props)) + +(provide 'evil-elisp-mode) +;;; evil-elisp-mode.el ends here