emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/corfu e23a750231 7/8: corfu-popupinfo--get-location: Ki


From: ELPA Syncer
Subject: [elpa] externals/corfu e23a750231 7/8: corfu-popupinfo--get-location: Kill new buffers
Date: Sat, 19 Nov 2022 22:57:32 -0500 (EST)

branch: externals/corfu
commit e23a750231917106ba8ff3c6c7a01510c5f36c59
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    corfu-popupinfo--get-location: Kill new buffers
---
 extensions/corfu-popupinfo.el | 35 +++++++++++++++++++----------------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/extensions/corfu-popupinfo.el b/extensions/corfu-popupinfo.el
index 36e90bc9d9..e5e1a38d07 100644
--- a/extensions/corfu-popupinfo.el
+++ b/extensions/corfu-popupinfo.el
@@ -156,23 +156,26 @@ all values are in pixels relative to the origin. See
     (when-let* ((fun (plist-get corfu--extra :company-location))
                 ;; BUG: company-location may throw errors if location is not 
found
                 (loc (ignore-errors (funcall fun candidate)))
-                (res (or (and (bufferp (car loc)) (car loc))
+                (buf (or (and (bufferp (car loc)) (car loc))
                          (find-file-noselect (car loc) t))))
-      (with-current-buffer res
-        (save-excursion
-          (save-restriction
-            (widen)
-            (if (bufferp (car loc))
-                (goto-char (cdr loc))
-              (goto-char (point-min))
-              (forward-line (1- (cdr loc))))
-            (let ((beg (point)))
-              ;; Support a little bit of scrolling.
-              (forward-line (* 10 corfu-popupinfo-max-height))
-              (when jit-lock-mode
-                (jit-lock-fontify-now beg (point)))
-              (setq res (buffer-substring beg (point)))
-              (and (not (string-blank-p res)) res))))))))
+      (unwind-protect
+          (with-current-buffer buf
+            (save-excursion
+              (save-restriction
+                (widen)
+                (if (bufferp (car loc))
+                    (goto-char (cdr loc))
+                  (goto-char (point-min))
+                  (forward-line (1- (cdr loc))))
+                (let ((beg (point)))
+                  ;; Support a little bit of scrolling.
+                  (forward-line (* 10 corfu-popupinfo-max-height))
+                  (when jit-lock-mode
+                    (jit-lock-fontify-now beg (point)))
+                  (let ((res (buffer-substring beg (point))))
+                    (and (not (string-blank-p res)) res))))))
+        (unless (bufferp (car loc))
+          (kill-buffer buf))))))
 
 (defun corfu-popupinfo--get-documentation (candidate)
   "Get the documentation for CANDIDATE."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]