diff options
| author | Evgeni Kolev <evgenysw@gmail.com> | 2018-02-15 14:08:41 +0200 |
|---|---|---|
| committer | James N <james@jojojames.com> | 2018-02-15 20:40:41 -0800 |
| commit | fad86bb068a03ba65df5d5da0febd888b1c591e9 (patch) | |
| tree | d91c4d4757739db92f1e9c8729418194f1c9cd6f | |
| parent | f04fd5eef32728cb146d2dc5f3701b1d4733a2bf (diff) | |
Add vdiff.el support
| -rw-r--r-- | evil-collection-vdiff.el | 58 | ||||
| -rw-r--r-- | evil-collection.el | 7 |
2 files changed, 65 insertions, 0 deletions
diff --git a/evil-collection-vdiff.el b/evil-collection-vdiff.el new file mode 100644 index 0000000..e39e7b1 --- /dev/null +++ b/evil-collection-vdiff.el @@ -0,0 +1,58 @@ +;;; evil-collection-vdiff.el --- Evil bindings for vdiff -*- lexical-binding: t -*- + +;; Copyright (C) 2017 Pierre Neidhardt + +;; Author: Evgeni Kolev <evgenysw@gmail.com> +;; Maintainer: James Nguyen <james@jojojames.com> +;; Pierre Neidhardt <ambrevar@gmail.com> +;; URL: https://github.com/jojojames/evil-collection +;; Version: 0.0.1 +;; Package-Requires: ((emacs "25.1")) +;; Keywords: evil, vdiff, tools + +;; This file 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, or (at your +;; option) any later version. +;; +;; This file 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. +;; +;; For a full copy of the GNU General Public License +;; see <http://www.gnu.org/licenses/>. + +;;; Commentary: +;; Evil bindings for vdiff.el https://github.com/justbur/emacs-vdiff + +;;; Code: +(require 'vdiff nil t) +(require 'evil) + +(defun evil-collection-vdiff-setup () + "Set up `evil' bindings for `vdiff-mode'." + (evil-define-minor-mode-key 'normal 'vdiff-mode + "]c" 'vdiff-next-hunk + "[c" 'vdiff-previous-hunk) + + ;; define `do' (diff obtain) and `dp' (diff put) bindings + (evil-define-minor-mode-key 'operator 'vdiff-mode + "o" '(menu-item + "" + nil + :filter (lambda (&optional _) + (when (memq evil-this-operator + evil-collection-delete-operators) + #'vdiff-receive-changes))) + "p" '(menu-item + "" + nil + :filter (lambda (&optional _) + (when (memq evil-this-operator + evil-collection-delete-operators) + #'vdiff-send-changes))))) + +(provide 'evil-collection-vdiff) + +;;; evil-collection-vdiff.el ends here diff --git a/evil-collection.el b/evil-collection.el index b336577..b8aa462 100644 --- a/evil-collection.el +++ b/evil-collection.el @@ -136,6 +136,7 @@ or evil-collection.") transmission typescript-mode vc-annotate + vdiff vlf which-key woman @@ -173,5 +174,11 @@ instance: (require (intern (concat "evil-collection-" (symbol-name m)))) (funcall (intern (concat "evil-collection-" (symbol-name m) "-setup")))))))) +(defvar evil-collection-delete-operators '(evil-delete + evil-cp-delete + vil-sp-delete + lispyville-delete) + "List of delete operators.") + (provide 'evil-collection) ;;; evil-collection.el ends here |
