summaryrefslogtreecommitdiff
path: root/modes/vc-dir
diff options
context:
space:
mode:
authorJonathan Lai <jonathanlai@gmail.com>2019-09-18 00:08:36 -0700
committerJames N <james@jojojames.com>2019-10-09 19:41:45 -0700
commitaec0ecbb86a4a6761f89a9945435595a6ad202b1 (patch)
tree07d53f271835ef7bb124775ab7647a8b5a942f75 /modes/vc-dir
parent9346e4452bb1b62bf5825ca6b3c01abd80d33813 (diff)
Move mode files: evil-collection-*.el -> modes/*/evil-collection-*.el
Diffstat (limited to 'modes/vc-dir')
-rw-r--r--modes/vc-dir/evil-collection-vc-dir.el112
1 files changed, 112 insertions, 0 deletions
diff --git a/modes/vc-dir/evil-collection-vc-dir.el b/modes/vc-dir/evil-collection-vc-dir.el
new file mode 100644
index 0000000..65b3e96
--- /dev/null
+++ b/modes/vc-dir/evil-collection-vc-dir.el
@@ -0,0 +1,112 @@
+;;; evil-collection-vc-dir.el --- Evil bindings for Vc-Dir -*- lexical-binding: t -*-
+
+;; Copyright (C) 2017 James Nguyen
+
+;; Author: James Nguyen <james@jojojames.com>
+;; Maintainer: James Nguyen <james@jojojames.com>
+;; Pierre Neidhardt <ambrevar@gmail.com>
+;; URL: https://github.com/emacs-evil/evil-collection
+;; Version: 0.0.1
+;; Package-Requires: ((emacs "25.1"))
+;; Keywords: evil, vc-dir, 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 <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;; Evil bindings for Vc-Dir.
+
+;;; Code:
+(require 'vc-dir)
+(require 'evil-collection)
+
+(defconst evil-collection-vc-dir-maps '(vc-dir-mode-map))
+
+;;;###autoload
+(defun evil-collection-vc-dir-setup ()
+ "Set up `evil' bindings for `vc-dir'."
+ (evil-set-initial-state 'vc-dir-mode 'normal)
+ (evil-collection-define-key 'normal 'vc-dir-mode-map
+ ;; VC commands
+ "c" 'vc-next-action
+
+ "d" 'vc-diff
+ "D" 'vc-root-diff
+ "\t" 'vc-diff
+ [backtab] 'vc-root-diff
+
+ "R" 'vc-register
+ "s" 'vc-register ;; Like `magit-stage'?
+ "gu" 'vc-update
+ "gr" 'revert-buffer
+
+ "F" 'vc-update ;; This is the same as `vc-update' bound to "gu".
+ "p" 'vc-push
+ "P" 'vc-push
+
+ "Lf" 'vc-print-log ;; Log File.
+ "Ll" 'vc-print-log
+ "Lr" 'vc-print-root-log
+ "LL" 'vc-print-root-log
+ "Li" 'vc-log-incoming
+ "Lo" 'vc-log-outgoing
+
+ "x" 'vc-revert
+ "b" 'vc-annotate ;; Like `magit-blame'
+
+ ;; Marking.
+ "m" 'vc-dir-mark
+ "M" 'vc-dir-mark-all-files
+ "u" 'vc-dir-unmark
+ "U" 'vc-dir-unmark-all-files
+
+ ;; Rebind paragraph-movement commands.
+ "]]" 'vc-dir-next-directory
+ "[[" 'vc-dir-previous-directory
+ "gj" 'vc-dir-next-directory
+ "gk" 'vc-dir-previous-directory
+ (kbd "C-j") 'vc-dir-next-directory
+ (kbd "C-k") 'vc-dir-previous-directory
+
+ ;; The remainder.
+ "gf" 'vc-dir-find-file
+ "\C-m" 'vc-dir-find-file
+
+ (kbd "S-<return>") 'vc-dir-find-file-other-window
+ "go" 'vc-dir-find-file-other-window
+ "gO" 'vc-dir-display-file
+ (kbd "M-<return>") 'vc-dir-display-file
+
+ "\C-c\C-c" 'vc-dir-kill-dir-status-process
+ [down-mouse-3] 'vc-dir-menu
+ [mouse-2] 'vc-dir-find-file-other-window
+ "t" 'vc-dir-toggle-mark
+ [follow-link] 'mouse-face
+
+ "(" 'vc-dir-hide-up-to-date
+ "o" 'vc-dir-hide-up-to-date
+
+ "X" 'vc-dir-kill-line
+ "S" 'vc-dir-search
+ "Q" 'vc-dir-query-replace-regexp
+ (kbd "M-s a C-s") 'vc-dir-isearch
+ (kbd "M-s a M-C-s") 'vc-dir-isearch-regexp
+ "i" 'vc-dir-ignore
+
+ ;; Branching
+ "Bc" 'vc-create-tag
+ "Bl" 'vc-print-branch-log
+ "Bs" 'vc-retrieve-tag))
+
+(provide 'evil-collection-vc-dir)
+;;; evil-collection-vc-dir.el ends here