:group 'diff-hl\r
:type 'boolean)\r
\r
-(defcustom diff-hl-revert-current-hunk t\r
- "Non-nil to only revert current hunk by default.\r
-`diff-hl-revert' will do the opposite when called with prefix argument."\r
- :group 'diff-hl\r
- :type 'boolean)\r
-\r
(defun diff-hl-define-bitmaps ()\r
(let* ((scale (if (and (boundp 'text-scale-mode-amount)\r
(plusp text-scale-mode-amount))\r
(unless (looking-at "^-")\r
(decf to-go))))))))))\r
\r
-(defun diff-hl-revert (arg)\r
- (interactive "P")\r
- (if (not (diff-xor arg diff-hl-revert-current-hunk))\r
- (vc-revert)\r
- (vc-buffer-sync)\r
- (let ((diff-buffer (generate-new-buffer-name "*diff-hl*"))\r
- (buffer (current-buffer))\r
- (line (line-number-at-pos))\r
- (fileset (vc-deduce-fileset)))\r
- (unwind-protect\r
- (progn\r
- (diff-hl-with-diff-switches\r
- (vc-diff-internal nil fileset nil nil nil diff-buffer))\r
- (vc-exec-after\r
- `(progn\r
- (when (eobp)\r
- (with-current-buffer ,buffer (diff-hl-remove-overlays))\r
- (error "Buffer is up-to-date"))\r
- (diff-hl-diff-skip-to ,line)\r
- (save-restriction\r
- (diff-restrict-view)\r
- (unless (yes-or-no-p (format "Revert current hunk in %s?"\r
- ,(caadr fileset)))\r
- (error "Revert canceled")))\r
- (let ((diff-advance-after-apply-hunk nil))\r
- (diff-apply-hunk t)))))\r
- (quit-windows-on diff-buffer)\r
- (save-buffer)\r
- (message "Hunk reverted")))))\r
+(defun diff-hl-revert-hunk ()\r
+ (interactive)\r
+ (vc-buffer-sync)\r
+ (let ((diff-buffer (generate-new-buffer-name "*diff-hl*"))\r
+ (buffer (current-buffer))\r
+ (line (line-number-at-pos))\r
+ (fileset (vc-deduce-fileset)))\r
+ (unwind-protect\r
+ (progn\r
+ (diff-hl-with-diff-switches\r
+ (vc-diff-internal nil fileset nil nil nil diff-buffer))\r
+ (vc-exec-after\r
+ `(progn\r
+ (when (eobp)\r
+ (with-current-buffer ,buffer (diff-hl-remove-overlays))\r
+ (error "Buffer is up-to-date"))\r
+ (diff-hl-diff-skip-to ,line)\r
+ (save-restriction\r
+ (diff-restrict-view)\r
+ (unless (yes-or-no-p (format "Revert current hunk in %s?"\r
+ ,(caadr fileset)))\r
+ (error "Revert canceled")))\r
+ (let ((diff-advance-after-apply-hunk nil))\r
+ (diff-apply-hunk t))\r
+ (with-current-buffer ,buffer\r
+ (save-buffer))\r
+ (message "Hunk reverted"))))\r
+ (quit-windows-on diff-buffer))))\r
\r
;;;###autoload\r
(define-minor-mode diff-hl-mode\r
"Toggle display of VC diff indicators in the left fringe."\r
- :lighter "" :keymap '(([remap vc-diff] . diff-hl-diff-goto-hunk)\r
- ([remap vc-revert] . diff-hl-revert))\r
+ :lighter "" :keymap `(([remap vc-diff] . diff-hl-diff-goto-hunk)\r
+ (,(kbd "C-x v n") . diff-hl-revert-hunk))\r
(if diff-hl-mode\r
(progn\r
(add-hook 'after-save-hook 'diff-hl-update nil t)\r