[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/ibuffer.el [lexbind]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/ibuffer.el [lexbind] |
Date: |
Tue, 14 Oct 2003 19:52:00 -0400 |
Index: emacs/lisp/ibuffer.el
diff -c emacs/lisp/ibuffer.el:1.32.2.1 emacs/lisp/ibuffer.el:1.32.2.2
*** emacs/lisp/ibuffer.el:1.32.2.1 Fri Apr 4 01:20:07 2003
--- emacs/lisp/ibuffer.el Tue Oct 14 19:51:06 2003
***************
*** 47,54 ****
the ability to filter the displayed buffers by various criteria."
:group 'convenience)
! (defcustom ibuffer-formats '((mark modified read-only " " (name 16 16 :left
:elide)
! " " (size 7 -1 :right)
" " (mode 16 16 :right :elide) " "
filename-and-process)
(mark " " (name 16 -1) " " filename))
"A list of ways to display buffer lines.
--- 47,54 ----
the ability to filter the displayed buffers by various criteria."
:group 'convenience)
! (defcustom ibuffer-formats '((mark modified read-only " " (name 18 18 :left
:elide)
! " " (size 9 -1 :right)
" " (mode 16 16 :right :elide) " "
filename-and-process)
(mark " " (name 16 -1) " " filename))
"A list of ways to display buffer lines.
***************
*** 157,162 ****
--- 157,167 ----
:group 'ibuffer)
(defvar ibuffer-shrink-to-minimum-size nil)
+ (defcustom ibuffer-display-summary t
+ "If non-nil, summarize Ibuffer columns."
+ :type 'boolean
+ :group 'ibuffer)
+
(defcustom ibuffer-truncate-lines t
"If non-nil, do not display continuation lines."
:type 'boolean
***************
*** 752,786 ****
(define-key ibuffer-mode-groups-popup [kill-filter-group]
'(menu-item "Kill filter group"
ibuffer-kill-line
! :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)))
(define-key ibuffer-mode-groups-popup [yank-filter-group]
'(menu-item "Yank last killed filter group"
ibuffer-yank
! :enable (and (featurep 'ibuf-ext)
ibuffer-filter-group-kill-ring)))
! (defvar ibuffer-name-map nil)
! (unless ibuffer-name-map
(let ((map (make-sparse-keymap)))
(define-key map [(mouse-1)] 'ibuffer-mouse-toggle-mark)
(define-key map [(mouse-2)] 'ibuffer-mouse-visit-buffer)
(define-key map [down-mouse-3] 'ibuffer-mouse-popup-menu)
! (setq ibuffer-name-map map)))
! (defvar ibuffer-mode-name-map nil)
! (unless ibuffer-mode-name-map
(let ((map (make-sparse-keymap)))
(define-key map [(mouse-2)] 'ibuffer-mouse-filter-by-mode)
(define-key map (kbd "RET") 'ibuffer-interactive-filter-by-mode)
! (setq ibuffer-mode-name-map map)))
! (defvar ibuffer-mode-filter-group-map nil)
! (unless ibuffer-mode-filter-group-map
(let ((map (make-sparse-keymap)))
(define-key map [(mouse-1)] 'ibuffer-mouse-toggle-mark)
(define-key map [(mouse-2)] 'ibuffer-mouse-toggle-filter-group)
(define-key map (kbd "RET") 'ibuffer-toggle-filter-group)
(define-key map [down-mouse-3] 'ibuffer-mouse-popup-menu)
! (setq ibuffer-mode-filter-group-map map)))
(defvar ibuffer-delete-window-on-quit nil
"Whether or not to delete the window upon exiting `ibuffer'.")
--- 757,790 ----
(define-key ibuffer-mode-groups-popup [kill-filter-group]
'(menu-item "Kill filter group"
ibuffer-kill-line
! :enable (and (featurep 'ibuf-ext)
! ibuffer-filter-groups)))
(define-key ibuffer-mode-groups-popup [yank-filter-group]
'(menu-item "Yank last killed filter group"
ibuffer-yank
! :enable (and (featurep 'ibuf-ext)
! ibuffer-filter-group-kill-ring)))
! (defvar ibuffer-name-map
(let ((map (make-sparse-keymap)))
(define-key map [(mouse-1)] 'ibuffer-mouse-toggle-mark)
(define-key map [(mouse-2)] 'ibuffer-mouse-visit-buffer)
(define-key map [down-mouse-3] 'ibuffer-mouse-popup-menu)
! map))
! (defvar ibuffer-mode-name-map
(let ((map (make-sparse-keymap)))
(define-key map [(mouse-2)] 'ibuffer-mouse-filter-by-mode)
(define-key map (kbd "RET") 'ibuffer-interactive-filter-by-mode)
! map))
! (defvar ibuffer-mode-filter-group-map
(let ((map (make-sparse-keymap)))
(define-key map [(mouse-1)] 'ibuffer-mouse-toggle-mark)
(define-key map [(mouse-2)] 'ibuffer-mouse-toggle-filter-group)
(define-key map (kbd "RET") 'ibuffer-toggle-filter-group)
(define-key map [down-mouse-3] 'ibuffer-mouse-popup-menu)
! map))
(defvar ibuffer-delete-window-on-quit nil
"Whether or not to delete the window upon exiting `ibuffer'.")
***************
*** 902,916 ****
(defun ibuffer-backward-line (&optional arg skip-group-names)
"Move backwards ARG lines, wrapping around the list if necessary."
(interactive "P")
! (unless arg
! (setq arg 1))
(beginning-of-line)
(while (> arg 0)
(forward-line -1)
(when (and ibuffer-movement-cycle
(or (get-text-property (point) 'ibuffer-title)
(and skip-group-names
! (get-text-property (point)
'ibuffer-filter-group-name))))
(goto-char (point-max))
(beginning-of-line))
(ibuffer-skip-properties (append '(ibuffer-summary)
--- 906,920 ----
(defun ibuffer-backward-line (&optional arg skip-group-names)
"Move backwards ARG lines, wrapping around the list if necessary."
(interactive "P")
! (or arg (setq arg 1))
(beginning-of-line)
(while (> arg 0)
(forward-line -1)
(when (and ibuffer-movement-cycle
(or (get-text-property (point) 'ibuffer-title)
(and skip-group-names
! (get-text-property (point)
! 'ibuffer-filter-group-name))))
(goto-char (point-max))
(beginning-of-line))
(ibuffer-skip-properties (append '(ibuffer-summary)
***************
*** 926,933 ****
(defun ibuffer-forward-line (&optional arg skip-group-names)
"Move forward ARG lines, wrapping around the list if necessary."
(interactive "P")
! (unless arg
! (setq arg 1))
(beginning-of-line)
(when (and ibuffer-movement-cycle
(or (eobp)
--- 930,936 ----
(defun ibuffer-forward-line (&optional arg skip-group-names)
"Move forward ARG lines, wrapping around the list if necessary."
(interactive "P")
! (or arg (setq arg 1))
(beginning-of-line)
(when (and ibuffer-movement-cycle
(or (eobp)
***************
*** 1043,1049 ****
(mapcar (if (eq type 'other-frame)
#'(lambda (buf)
(let ((curframe (selected-frame)))
! (select-frame (new-frame))
(switch-to-buffer buf)
(select-frame curframe)))
#'(lambda (buf)
--- 1046,1052 ----
(mapcar (if (eq type 'other-frame)
#'(lambda (buf)
(let ((curframe (selected-frame)))
! (select-frame (make-frame))
(switch-to-buffer buf)
(select-frame curframe)))
#'(lambda (buf)
***************
*** 1264,1271 ****
(defun ibuffer-mark-interactive (arg mark movement)
(assert (eq major-mode 'ibuffer-mode))
! (unless arg
! (setq arg 1))
(ibuffer-forward-line 0)
(ibuffer-aif (get-text-property (point) 'ibuffer-filter-group-name)
(progn
--- 1267,1273 ----
(defun ibuffer-mark-interactive (arg mark movement)
(assert (eq major-mode 'ibuffer-mode))
! (or arg (setq arg 1))
(ibuffer-forward-line 0)
(ibuffer-aif (get-text-property (point) 'ibuffer-filter-group-name)
(progn
***************
*** 1389,1395 ****
(defun ibuffer-compile-make-format-form (strvar widthform alignment)
(let* ((left `(make-string tmp2 ? ))
! (right `(make-string (- tmp1 tmp2) ? )))
`(progn
(setq tmp1 ,widthform
tmp2 (/ tmp1 2))
--- 1391,1397 ----
(defun ibuffer-compile-make-format-form (strvar widthform alignment)
(let* ((left `(make-string tmp2 ? ))
! (right `(make-string (- tmp1 tmp2) ? )))
`(progn
(setq tmp1 ,widthform
tmp2 (/ tmp1 2))
***************
*** 1600,1606 ****
(define-ibuffer-column read-only (:name "R" :inline t)
(if buffer-read-only
! "%"
" "))
(define-ibuffer-column modified (:name "M" :inline t)
--- 1602,1608 ----
(define-ibuffer-column read-only (:name "R" :inline t)
(if buffer-read-only
! (string ibuffer-read-only-char)
" "))
(define-ibuffer-column modified (:name "M" :inline t)
***************
*** 1608,1621 ****
(string ibuffer-modified-char)
" "))
! (define-ibuffer-column name (:inline t
! :props
! ('mouse-face 'highlight 'keymap ibuffer-name-map
! 'ibuffer-name-column t
! 'help-echo "mouse-1: mark this buffer\nmouse-2:
select this buffer\nmouse-3: operate on this buffer"))
(propertize (buffer-name) 'font-lock-face (ibuffer-buffer-name-face buffer
mark)))
! (define-ibuffer-column size (:inline t)
(format "%s" (buffer-size)))
(define-ibuffer-column mode (:inline t
--- 1610,1642 ----
(string ibuffer-modified-char)
" "))
! (define-ibuffer-column name
! (:inline t
! :props
! ('mouse-face 'highlight 'keymap ibuffer-name-map
! 'ibuffer-name-column t
! 'help-echo '(if tooltip-mode
! "mouse-1: mark this buffer\nmouse-2: select
this buffer\nmouse-3: operate on this buffer"
! "mouse-1: mark buffer mouse-2: select buffer
mouse-3: operate"))
! :summarizer
! (lambda (strings)
! (let ((bufs (length strings)))
! (cond ((zerop bufs) "No buffers")
! ((= 1 bufs) "1 buffer")
! (t (format "%s buffers" bufs))))))
(propertize (buffer-name) 'font-lock-face (ibuffer-buffer-name-face buffer
mark)))
! (define-ibuffer-column size
! (:inline t
! :summarizer
! (lambda (column-strings)
! (let ((total 0))
! (dolist (string column-strings)
! (setq total
! ;; like, ewww ...
! (+ (float (string-to-int string))
! total)))
! (format "%.0f" total))))
(format "%s" (buffer-size)))
(define-ibuffer-column mode (:inline t
***************
*** 1625,1636 ****
'help-echo "mouse-2: filter by this mode"))
(format "%s" mode-name))
! (define-ibuffer-column process ()
(ibuffer-aif (get-buffer-process buffer)
(format "(%s %s)" it (process-status it))
! "none"))
! (define-ibuffer-column filename ()
(let ((directory-abbrev-alist ibuffer-directory-abbrev-alist))
(abbreviate-file-name
(or buffer-file-name
--- 1646,1669 ----
'help-echo "mouse-2: filter by this mode"))
(format "%s" mode-name))
! (define-ibuffer-column process
! (:summarizer
! (lambda (strings)
! (let ((total (length (delete "" strings))))
! (cond ((zerop total) "No processes")
! ((= 1 total) "1 process")
! (t (format "%d processes" total))))))
(ibuffer-aif (get-buffer-process buffer)
(format "(%s %s)" it (process-status it))
! ""))
! (define-ibuffer-column filename
! (:summarizer
! (lambda (strings)
! (let ((total (length (delete "" strings))))
! (cond ((zerop total) "No files")
! ((= 1 total) "1 file")
! (t (format "%d files" total))))))
(let ((directory-abbrev-alist ibuffer-directory-abbrev-alist))
(abbreviate-file-name
(or buffer-file-name
***************
*** 1638,1650 ****
dired-directory)
""))))
! (define-ibuffer-column filename-and-process (:name "Filename/Process")
(let ((proc (get-buffer-process buffer))
(filename (ibuffer-make-column-filename buffer mark)))
(if proc
! (concat (propertize (format "(%s %s) " proc (process-status proc))
'font-lock-face 'italic)
! filename)
filename)))
(defun ibuffer-format-column (str width alignment)
--- 1671,1704 ----
dired-directory)
""))))
! (define-ibuffer-column filename-and-process
! (:name "Filename/Process"
! :summarizer
! (lambda (strings)
! (setq strings (delete "" strings))
! (let ((procs 0)
! (files 0))
! (dolist (string strings)
! (if (string-match "\\(\?:\\`(\[\[:ascii:\]\]\+)\\)" string)
! (progn (setq procs (1+ procs))
! (if (< (match-end 0) (length string))
! (setq files (1+ files))))
! (setq files (1+ files))))
! (concat (cond ((zerop files) "No files")
! ((= 1 files) "1 file")
! (t (format "%d files" files)))
! ", "
! (cond ((zerop procs) "no processes")
! ((= 1 procs) "1 process")
! (t (format "%d processes" procs)))))))
(let ((proc (get-buffer-process buffer))
(filename (ibuffer-make-column-filename buffer mark)))
(if proc
! (concat (propertize (format "(%s %s)" proc (process-status proc))
'font-lock-face 'italic)
! (if (> (length filename) 0)
! (format " %s" filename)
! ""))
filename)))
(defun ibuffer-format-column (str width alignment)
***************
*** 1927,1960 ****
(delete-region (previous-single-property-change
(point-max) 'ibuffer-summary)
(point-max)))
! (add-text-properties
! (point)
! (progn
! (insert "\n")
! (dolist (element format)
! (insert
! (if (stringp element)
! (make-string (length element) ? )
! (let ((sym (car element)))
! (let ((min (cadr element))
! ;; (max (caddr element))
! (align (cadddr element)))
! ;; Ignore a negative min when we're inserting the title
! (when (minusp min)
! (setq min (- min)))
! (let* ((summary (if (get sym 'ibuffer-column-summarizer)
! (funcall (get sym
'ibuffer-column-summarizer)
! (get sym 'ibuffer-column-summary))
! (make-string (length (get sym
'ibuffer-column-name))
! ? )))
! (len (length summary)))
! (if (< len min)
! (ibuffer-format-column summary
! (- min len)
! align)
! summary)))))))
! (point))
! `(ibuffer-summary t))))
(defun ibuffer-update-mode-name ()
(setq mode-name (format "Ibuffer by %s" (if ibuffer-sorting-mode
--- 1981,2015 ----
(delete-region (previous-single-property-change
(point-max) 'ibuffer-summary)
(point-max)))
! (if ibuffer-display-summary
! (add-text-properties
! (point)
! (progn
! (insert "\n")
! (dolist (element format)
! (insert
! (if (stringp element)
! (make-string (length element) ? )
! (let ((sym (car element)))
! (let ((min (cadr element))
! ;; (max (caddr element))
! (align (cadddr element)))
! ;; Ignore a negative min when we're inserting the title
! (when (minusp min)
! (setq min (- min)))
! (let* ((summary (if (get sym 'ibuffer-column-summarizer)
! (funcall (get sym
'ibuffer-column-summarizer)
! (get sym
'ibuffer-column-summary))
! (make-string (length (get sym
'ibuffer-column-name))
! ? )))
! (len (length summary)))
! (if (< len min)
! (ibuffer-format-column summary
! (- min len)
! align)
! summary)))))))
! (point))
! `(ibuffer-summary t)))))
(defun ibuffer-update-mode-name ()
(setq mode-name (format "Ibuffer by %s" (if ibuffer-sorting-mode
***************
*** 2063,2069 ****
font-lock-face ,ibuffer-filter-group-name-face
keymap ,ibuffer-mode-filter-group-map
mouse-face highlight
! help-echo ,(concat filter-string "mouse-1: toggle marks in this
group\nmouse-2: hide/show this filtering group ")))
(insert "\n")
(when bmarklist
(put-text-property
--- 2118,2131 ----
font-lock-face ,ibuffer-filter-group-name-face
keymap ,ibuffer-mode-filter-group-map
mouse-face highlight
! help-echo ,(let ((echo '(if tooltip-mode
! "mouse-1: toggle marks in this group\nmouse-2:
hide/show this filtering group"
! "mouse-1: toggle marks mouse-2: hide/show")))
! (if (> (length filter-string) 0)
! `(concat ,filter-string
! (if tooltip-mode "\n" " ")
! ,echo)
! echo))))
(insert "\n")
(when bmarklist
(put-text-property
***************
*** 2170,2178 ****
(interactive "P")
(when ibuffer-use-other-window
(setq other-window-p t))
! (let* ((buf (get-buffer-create (or name "*Ibuffer*")))
! (already-in (eq (current-buffer) buf))
! (need-update nil))
(if other-window-p
(funcall (if noselect #'(lambda (buf) (display-buffer buf t))
#'pop-to-buffer) buf)
(funcall (if noselect #'display-buffer #'switch-to-buffer) buf))
--- 2232,2238 ----
(interactive "P")
(when ibuffer-use-other-window
(setq other-window-p t))
! (let ((buf (get-buffer-create (or name "*Ibuffer*"))))
(if other-window-p
(funcall (if noselect #'(lambda (buf) (display-buffer buf t))
#'pop-to-buffer) buf)
(funcall (if noselect #'display-buffer #'switch-to-buffer) buf))
***************
*** 2181,2189 ****
;; We switch to the buffer's window in order to be able
;; to modify the value of point
(select-window (get-buffer-window buf))
! (unless (eq major-mode 'ibuffer-mode)
! (ibuffer-mode)
! (setq need-update t))
(setq ibuffer-delete-window-on-quit other-window-p)
(when shrink
(setq ibuffer-shrink-to-minimum-size shrink))
--- 2241,2248 ----
;; We switch to the buffer's window in order to be able
;; to modify the value of point
(select-window (get-buffer-window buf))
! (or (eq major-mode 'ibuffer-mode)
! (ibuffer-mode))
(setq ibuffer-delete-window-on-quit other-window-p)
(when shrink
(setq ibuffer-shrink-to-minimum-size shrink))
***************
*** 2433,2436 ****
--- 2492,2496 ----
;; coding: iso-8859-1
;; End:
+ ;;; arch-tag: 72581688-0603-4954-b8cf-837c700f62e8
;;; ibuffer.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/ibuffer.el [lexbind],
Miles Bader <=