[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] scratch/add-vdiff 048d544 198/258: Pass session explicitly from r
From: |
Justin Burkett |
Subject: |
[elpa] scratch/add-vdiff 048d544 198/258: Pass session explicitly from refresh sentinel |
Date: |
Wed, 17 May 2017 08:13:50 -0400 (EDT) |
branch: scratch/add-vdiff
commit 048d5443f831f4daed7692df72f76d64c762d0d5
Author: justbur <address@hidden>
Commit: justbur <address@hidden>
Pass session explicitly from refresh sentinel
The with-buffer-a trick was causing some odd side effects in
other (not a) buffers
---
vdiff.el | 33 ++++++++++++---------------------
1 file changed, 12 insertions(+), 21 deletions(-)
diff --git a/vdiff.el b/vdiff.el
index a502975..7082dd5 100644
--- a/vdiff.el
+++ b/vdiff.el
@@ -394,15 +394,6 @@ because those are handled differently.")
(1- (overlay-start ovr))
(1+ (overlay-end ovr)))))))
-(defmacro vdiff--with-buffer-a (session &rest body)
- "Execute BODY in buffer a of SESSION."
- (declare (indent 1))
- `(let ((buf (car (vdiff-session-buffers ,session))))
- (unless (buffer-live-p buf)
- (error "vdiff: Session buffer (%s) not live"))
- (with-current-buffer buf
- ,@body)))
-
(defmacro vdiff--with-all-buffers (&rest body)
"Execute BODY in all vdiff buffers."
`(dolist (buf (vdiff-session-buffers vdiff--session))
@@ -576,9 +567,9 @@ parsing the diff output and triggering the overlay updates."
(setq finished t)
(message "vdiff process error: %s" event)))
(when finished
- (vdiff--with-buffer-a ses
- (vdiff--refresh-overlays)
- (vdiff--refresh-line-maps)
+ (vdiff--refresh-overlays ses)
+ (vdiff--refresh-line-maps ses)
+ (let ((vdiff--session ses))
(when vdiff-auto-refine
(vdiff-refine-all-hunks))
(run-hooks (process-get proc 'vdiff-post-refresh-hook)))
@@ -754,7 +745,7 @@ See `vdiff-default-refinement-syntax-code' to change the
definition
of a \"word\"."
(interactive)
;; Doesn't work for diff3 yet
- (when vdiff-mode
+ (when (vdiff--buffer-p)
(dolist (ovr (overlays-in (point-min) (point-max)))
(vdiff-refine-this-hunk syntax-code ovr))))
@@ -997,13 +988,13 @@ of a \"word\"."
(vdiff--add-hunk-overlay this-len nil
(- max-other-len this-len))))))
-(defun vdiff--refresh-overlays ()
+(defun vdiff--refresh-overlays (session)
"Delete and recreate overlays in both buffers."
(when (vdiff--buffer-p)
(vdiff--remove-all-overlays)
- (let ((a-buffer (car (vdiff-session-buffers vdiff--session)))
- (b-buffer (cadr (vdiff-session-buffers vdiff--session)))
- (c-buffer (nth 2 (vdiff-session-buffers vdiff--session)))
+ (let ((a-buffer (car (vdiff-session-buffers session)))
+ (b-buffer (cadr (vdiff-session-buffers session)))
+ (c-buffer (nth 2 (vdiff-session-buffers session)))
(a-line 1)
(b-line 1)
(c-line 1)
@@ -1023,7 +1014,7 @@ of a \"word\"."
(with-current-buffer c-buffer
(widen)
(goto-char (point-min))))
- (dolist (hunk (vdiff-session-diff-data vdiff--session))
+ (dolist (hunk (vdiff-session-diff-data session))
(let* ((a-range (nth 0 hunk))
(b-range (nth 1 hunk))
(c-range (nth 2 hunk))
@@ -1213,7 +1204,7 @@ just deleting text in another buffer."
(setf (car vars) (car expr))
(setf (cdr vars) (cdr expr)))
-(defun vdiff--refresh-line-maps ()
+(defun vdiff--refresh-line-maps (session)
"Sync information in `vdiff--line-map' with
`vdiff--diff-data'."
(when (vdiff--buffer-p)
@@ -1224,7 +1215,7 @@ just deleting text in another buffer."
(c-a (list (list 0 0 0)))
(b-c (list (list 0 0 0)))
(c-b (list (list 0 0 0))))
- (dolist (hunk (vdiff-session-diff-data vdiff--session))
+ (dolist (hunk (vdiff-session-diff-data session))
(let* ((a-lines (nth 0 hunk))
(a-beg (car a-lines))
(a-prior (1- a-beg))
@@ -1253,7 +1244,7 @@ just deleting text in another buffer."
(setq c-a (nconc c-a (cdr new-a-c)))
(setq b-c (nconc b-c (car new-b-c)))
(setq c-b (nconc c-b (cdr new-b-c))))))))
- (setf (vdiff-session-line-maps vdiff--session)
+ (setf (vdiff-session-line-maps session)
(if vdiff-3way-mode
(list (list 'a a-b a-c)
(list 'b b-a b-c)
- [elpa] scratch/add-vdiff 64430c3 215/258: Cleanup merge, (continued)
- [elpa] scratch/add-vdiff 64430c3 215/258: Cleanup merge, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 19f4616 217/258: vdiff-magit: Port compare and show-commit, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff a81d62a 240/258: README: Update recent changes, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 9be4fe3 066/258: Update install instructions in README, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff eda4b1b 204/258: Force update of window-start in manual calls to scroll func, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 7d60015 201/258: Add some doctrings, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 3037be6 222/258: vdiff-magit: Cleanup references in dwim, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 615e7bd 228/258: vdiff-magit: Fix killing of buffers in stage, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff a040a4b 246/258: vdiff: Add vdiff-merge-conflict, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 7fbb20e 205/258: Nil temp-session after using it, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 048d544 198/258: Pass session explicitly from refresh sentinel,
Justin Burkett <=
- [elpa] scratch/add-vdiff ed25084 224/258: vdiff-magit: Fix some strings, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 432534d 230/258: vdiff-magit: Don't use vdiff-magit-resolve yet, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 1d79425 235/258: vdiff-magit: Cleanup header, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff c2c991d 209/258: Add initial vdiff-magit work, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff fb3097c 247/258: vdiff: Check if window exists before forcing vscroll, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff bcacd3f 249/258: vdiff: Add option vdiff-use-ancestor-as-merge-buffer, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff 52ea351 237/258: vdiff-magit: Add option to prefer ediff for merges, Justin Burkett, 2017/05/17
- [elpa] scratch/add-vdiff f11c7c2 257/258: vdiff: Fix vdiff-buffers window layout, Justin Burkett, 2017/05/17