branch: externals/bufferlo
commit 2a0974598ba44c61d057cceb655eab440d13fc49
Author: shipmints <shipmi...@gmail.com>
Commit: shipmints <shipmi...@gmail.com>

    Added interactive ibuffer "-" key to invoke bufferlo-remove. elisp 
indenting corrections.
---
 bufferlo.el | 65 ++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 34 insertions(+), 31 deletions(-)

diff --git a/bufferlo.el b/bufferlo.el
index d4a84920d4..92d5eab8fb 100644
--- a/bufferlo.el
+++ b/bufferlo.el
@@ -52,6 +52,8 @@
 (require 'tab-bar)
 (require 'desktop)
 (require 'bookmark)
+(require 'ibuffer)
+(require 'ibuf-ext)
 
 (defgroup bufferlo nil
   "Manage frame/tab-local buffer lists."
@@ -1240,7 +1242,7 @@ If the prefix argument is given, include all buffers."
   (display-buffer
    (let* ((old-buffer (current-buffer))
           (name "*Orphan Buffer List*")
-    (buffer (get-buffer-create name)))
+          (buffer (get-buffer-create name)))
      (with-current-buffer buffer
        (Buffer-menu-mode)
        (setq bufferlo--buffer-menu-this-frame (selected-frame))
@@ -1252,32 +1254,21 @@ If the prefix argument is given, include all buffers."
        (revert-buffer))
      buffer)))
 
-;; byte compiler
-(defvar ibuffer-filtering-alist)
-(defvar ibuffer--filter-map)
-(declare-function ibuffer-push-filter "ibuf-ext")
-(declare-function ibuffer-pop-filter "ibuf-ext")
-(declare-function ibuffer-update "ibuf-ext")
-(declare-function ibuffer-filter-by-bufferlo-local-buffers "bufferlo")
-(declare-function ibuffer-filter-by-bufferlo-orphan-buffers "bufferlo")
-
-(with-eval-after-load 'ibuf-ext
-  (define-ibuffer-filter bufferlo-local-buffers
-      "Limit current view to local buffers."
-    (:description "local buffers" :reader nil)
-    (bufferlo-local-buffer-p buf))
-  (define-ibuffer-filter bufferlo-orphan-buffers
-      "Limit current view to orphan buffers."
-    (:description "orphan buffers" :reader nil)
-    (not (memq buf (bufferlo--get-captured-buffers)))))
-
-(with-eval-after-load 'ibuffer
-  (when bufferlo-ibuffer-bind-local-buffer-filter
-    (require 'ibuf-ext)
-    (define-key ibuffer--filter-map (kbd "l")
-                #'ibuffer-filter-by-bufferlo-local-buffers)
-    (define-key ibuffer--filter-map (kbd "L")
-                #'ibuffer-filter-by-bufferlo-orphan-buffers)))
+(define-ibuffer-filter bufferlo-local-buffers
+    "Limit current view to local buffers."
+  (:description "local buffers" :reader nil)
+  (bufferlo-local-buffer-p buf))
+
+(define-ibuffer-filter bufferlo-orphan-buffers
+    "Limit current view to orphan buffers."
+  (:description "orphan buffers" :reader nil)
+  (not (memq buf (bufferlo--get-captured-buffers))))
+
+(when bufferlo-ibuffer-bind-local-buffer-filter
+  (define-key ibuffer--filter-map (kbd "l")
+              'ibuffer-filter-by-bufferlo-local-buffers)
+  (define-key ibuffer--filter-map (kbd "L")
+              'ibuffer-filter-by-bufferlo-orphan-buffers))
 
 (defun bufferlo-ibuffer (&optional other-window-p noselect shrink)
   "Invoke `ibuffer' filtered for local buffers.
@@ -1304,6 +1295,18 @@ The parameters OTHER-WINDOW-P NOSELECT SHRINK are passed 
to `ibuffer'."
     (ibuffer other-window-p name '((bufferlo-orphan-buffers . nil))
              noselect shrink)))
 
+(define-ibuffer-op ibuffer-do-bufferlo-remove ()
+  "Remove marked buffers from bufferlo's local buffer list."
+  (
+   :active-opstring "remove from bufferlo locals" ; user prompt
+   :opstring "removed from bufferlo locals:" ; upon action completion
+   :modifier-p t
+   :dangerous t
+   :complex t
+   )
+  (bufferlo-remove buf) ; always returns nil; TODO: consider it could return t 
if actually removed, nil if not
+  t)
+
 (define-minor-mode bufferlo-anywhere-mode
   "Frame/tab-local buffer lists anywhere you like.
 Enables bufferlo's local buffer list for any function that interactively 
prompts
@@ -1386,8 +1389,8 @@ Has no effect if the next command does not query for a 
buffer."
           (lambda ()
             (unless (or
                      ;; from window.el:display-buffer-override-next-command
-         (> (minibuffer-depth) minibuffer-depth)
-         (eq this-command command))
+                     (> (minibuffer-depth) minibuffer-depth)
+                     (eq this-command command))
               (setq bufferlo--anywhere-tmp-disabled nil)
               (remove-hook 'post-command-hook postfun))))
     (setq bufferlo--anywhere-tmp-disabled t)
@@ -1409,8 +1412,8 @@ In contrast to `bufferlo-anywhere-mode', this does not 
adhere to
           (lambda ()
             (unless (or
                      ;; from window.el:display-buffer-override-next-command
-         (> (minibuffer-depth) minibuffer-depth)
-         (eq this-command command))
+                     (> (minibuffer-depth) minibuffer-depth)
+                     (eq this-command command))
               (setq bufferlo--anywhere-tmp-enabled nil)
               (unless bufferlo-anywhere-mode
                 (advice-remove #'call-interactively

Reply via email to