[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 6878093 33/57: Add vdiff-toggle-fold and vdiff-toggle-all-
From: |
Justin Burkett |
Subject: |
[elpa] master 6878093 33/57: Add vdiff-toggle-fold and vdiff-toggle-all-folds |
Date: |
Tue, 3 Nov 2020 14:32:23 -0500 (EST) |
branch: master
commit 687809375f60ece916765003b48b419519551667
Author: Justin Burkett <justin@burkett.cc>
Commit: Justin Burkett <justin@burkett.cc>
Add vdiff-toggle-fold and vdiff-toggle-all-folds
Fixes #22
---
vdiff.el | 40 +++++++++++++++++++++++++++++++++-------
1 file changed, 33 insertions(+), 7 deletions(-)
diff --git a/vdiff.el b/vdiff.el
index 4ac2bc0..d528d15 100644
--- a/vdiff.el
+++ b/vdiff.el
@@ -1684,6 +1684,19 @@ buffer)."
(overlay-put ovr 'intangible t)
(overlay-put ovr 'display (overlay-get ovr 'vdiff-fold-text)))
+(defun vdiff--open-fold (ovr)
+ "Opens fold overlay OVR."
+ (vdiff--set-open-fold-props ovr)
+ (dolist (other-fold (overlay-get ovr 'vdiff-other-folds))
+ (vdiff--set-open-fold-props other-fold)))
+
+(defun vdiff--close-fold (ovr)
+ "Closes fold overlay OVR."
+ (setf (vdiff-session-all-folds-open vdiff--session) nil)
+ (vdiff--set-closed-fold-props ovr)
+ (dolist (other-fold (overlay-get ovr 'vdiff-other-folds))
+ (vdiff--set-closed-fold-props other-fold)))
+
(defun vdiff-open-fold (beg end)
"Open folds between BEG and END, as well as corresponding ones
in other vdiff buffer. If called interactively, either open fold
@@ -1692,9 +1705,7 @@ in the region."
(interactive (vdiff--region-or-close-overlay))
(dolist (ovr (overlays-in beg end))
(when (eq (overlay-get ovr 'vdiff-type) 'fold)
- (vdiff--set-open-fold-props ovr)
- (dolist (other-fold (overlay-get ovr 'vdiff-other-folds))
- (vdiff--set-open-fold-props other-fold))))
+ (vdiff--open-fold ovr)))
(vdiff--scroll-function))
(defun vdiff-close-fold (beg end)
@@ -1705,12 +1716,21 @@ folds in the region."
(interactive (vdiff--region-or-close-overlay))
(dolist (ovr (overlays-in beg end))
(when (eq (overlay-get ovr 'vdiff-type) 'fold)
- (setf (vdiff-session-all-folds-open vdiff--session) nil)
- (vdiff--set-closed-fold-props ovr)
- (dolist (other-fold (overlay-get ovr 'vdiff-other-folds))
- (vdiff--set-closed-fold-props other-fold))))
+ (vdiff--close-fold ovr)))
(vdiff--scroll-function))
+(defun vdiff-toggle-fold (beg end)
+ "Toggles folds between BEG and END, as well as corresponding
+ones in other vdiff buffer. If called interactively, either
+toggle fold at point or on prior line. If the region is active
+toggle all folds in region."
+ (interactive (vdiff--region-or-close-overlay))
+ (dolist (ovr (overlays-in beg end))
+ (when (eq (overlay-get ovr 'vdiff-type) 'fold)
+ (if (overlay-get ovr 'vdiff-fold-open)
+ (vdiff--close-fold ovr)
+ (vdiff--open-fold ovr)))))
+
(defun vdiff-open-all-folds ()
"Open all folds in both buffers"
(interactive)
@@ -1736,6 +1756,12 @@ folds in the region."
(dolist (other-fold (overlay-get ovr 'vdiff-other-folds))
(vdiff--set-closed-fold-props other-fold)))))
+(defun vdiff-toggle-all-folds ()
+ "Toggle all folds in both buffers"
+ (interactive)
+ (save-excursion
+ (vdiff-toggle-fold (point-min) (point-max))))
+
;; * Movement
(defun vdiff--nth-hunk (&optional n use-folds)
- [elpa] master bc5e1a7 07/57: Remove debugging message, (continued)
- [elpa] master bc5e1a7 07/57: Remove debugging message, Justin Burkett, 2020/11/03
- [elpa] master b15b020 10/57: Add diff --minimal as algorithm and fix case args for git, Justin Burkett, 2020/11/03
- [elpa] master 992d07b 14/57: Add travis support, Justin Burkett, 2020/11/03
- [elpa] master 0bfb259 11/57: Add vdiff-debug flag, Justin Burkett, 2020/11/03
- [elpa] master 106a69f 20/57: Fix previous tests for Travis, Justin Burkett, 2020/11/03
- [elpa] master c803bd6 17/57: Add warnings for obsolete variables, Justin Burkett, 2020/11/03
- [elpa] master 5f7d3fd 22/57: Add Travis badge, Justin Burkett, 2020/11/03
- [elpa] master 348d1a7 27/57: Add after-quit arg to vdiff-test-with-buffers, Justin Burkett, 2020/11/03
- [elpa] master fd6ec8e 25/57: Test that both buffers are correct by default, Justin Burkett, 2020/11/03
- [elpa] master 45666cc 30/57: README: evil-collection adds vimdiff-like bindings, Justin Burkett, 2020/11/03
- [elpa] master 6878093 33/57: Add vdiff-toggle-fold and vdiff-toggle-all-folds,
Justin Burkett <=
- [elpa] master ccc773b 39/57: Add optional to-buffer arg to vdiff--translate line, Justin Burkett, 2020/11/03
- [elpa] master 58d530b 53/57: Add vdiff-temp-files, Justin Burkett, 2020/11/03
- [elpa] master c732247 45/57: Reset truncate-lines on cleanup, Justin Burkett, 2020/11/03
- [elpa] master 61d29bb 54/57: Travis -> github workflow, Justin Burkett, 2020/11/03
- [elpa] master eb553fa 09/57: Add support for different diff algorithms, Justin Burkett, 2020/11/03
- [elpa] master 8f3fa10 15/57: Fix Makefile typo, Justin Burkett, 2020/11/03
- [elpa] master 5667bc6 16/57: Ensure input files to diff end in newline, Justin Burkett, 2020/11/03
- [elpa] master 110d672 12/57: Cleanup diff parsing function, Justin Burkett, 2020/11/03
- [elpa] master bd8976e 26/57: Add movement and setup tests, Justin Burkett, 2020/11/03
- [elpa] master 40ffc92 29/57: Warn on bad initialization of vdiff session., Justin Burkett, 2020/11/03