Mercurial > emacs
comparison lisp/ibuffer.el @ 45687:434d9f56eab8
(ibuffer-category-alist): Delete.
(ibuffer-get-category): Delete.
(ibuffer-compile-make-eliding-form): Use `font-lock-face' instead
of categories.
(ibuffer-compile-format): Don't treat `name' category specially.
(ibuffer-column name): Use `font-lock-face'.
(filename-and-process): Ditto.
(ibuffer-buffer-name-category): Renamed to
`ibuffer-buffer-name-face'. Don't use categories.
(ibuffer-update-title-and-summary): Use `font-lock-face'.
(ibuffer-insert-filter-group): Ditto.
(ibuffer-mode): Don't set up categories.
author | Colin Walters <walters@gnu.org> |
---|---|
date | Sat, 08 Jun 2002 20:42:26 +0000 |
parents | 8fd13e1863ed |
children | 650fdcae4092 |
comparison
equal
deleted
inserted
replaced
45686:25d73d0e2b98 | 45687:434d9f56eab8 |
---|---|
740 | 740 |
741 (define-key ibuffer-mode-groups-popup [kill-filter-group] | 741 (define-key ibuffer-mode-groups-popup [kill-filter-group] |
742 '(menu-item "Kill filter group" | 742 '(menu-item "Kill filter group" |
743 ibuffer-kill-line | 743 ibuffer-kill-line |
744 :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) | 744 :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) |
745 (define-key ibuffer-mode-groups-popup [yank-filter-group] | 745 (define-key ibuffer-mode-groups-popup [yank-filter-group] |
746 '(menu-item "Yank last killed filter group" | 746 '(menu-item "Yank last killed filter group" |
747 ibuffer-yank | 747 ibuffer-yank |
748 :enable (and (featurep 'ibuf-ext) ibuffer-filter-group-kill-ring))) | 748 :enable (and (featurep 'ibuf-ext) ibuffer-filter-group-kill-ring))) |
749 | 749 |
750 (defvar ibuffer-name-map nil) | 750 (defvar ibuffer-name-map nil) |
775 | 775 |
776 (defvar ibuffer-delete-window-on-quit nil | 776 (defvar ibuffer-delete-window-on-quit nil |
777 "Whether or not to delete the window upon exiting `ibuffer'.") | 777 "Whether or not to delete the window upon exiting `ibuffer'.") |
778 | 778 |
779 (defvar ibuffer-did-modification nil) | 779 (defvar ibuffer-did-modification nil) |
780 (defvar ibuffer-category-alist nil) | |
781 | 780 |
782 (defvar ibuffer-sorting-functions-alist nil | 781 (defvar ibuffer-sorting-functions-alist nil |
783 "An alist of functions which describe how to sort buffers. | 782 "An alist of functions which describe how to sort buffers. |
784 | 783 |
785 Note: You most likely do not want to modify this variable directly; | 784 Note: You most likely do not want to modify this variable directly; |
1349 max -1 | 1348 max -1 |
1350 align :left | 1349 align :left |
1351 elide nil)) | 1350 elide nil)) |
1352 (list sym min max align elide))) | 1351 (list sym min max align elide))) |
1353 form)) | 1352 form)) |
1354 | |
1355 (defsubst ibuffer-get-category (name) | |
1356 (cdr (assq name ibuffer-category-alist))) | |
1357 | 1353 |
1358 (defun ibuffer-compile-make-eliding-form (strvar elide from-end-p) | 1354 (defun ibuffer-compile-make-eliding-form (strvar elide from-end-p) |
1359 (let ((ellipsis (propertize ibuffer-eliding-string 'category | 1355 (let ((ellipsis (propertize ibuffer-eliding-string 'font-lock-face 'bold))) |
1360 (ibuffer-get-category | |
1361 'ibuffer-category-eliding-string)))) | |
1362 (if (or elide ibuffer-elide-long-columns) | 1356 (if (or elide ibuffer-elide-long-columns) |
1363 `(if (> strlen 5) | 1357 `(if (> strlen 5) |
1364 ,(if from-end-p | 1358 ,(if from-end-p |
1365 `(concat ,ellipsis | 1359 `(concat ,ellipsis |
1366 (substring ,strvar | 1360 (substring ,strvar |
1467 `(insert | 1461 `(insert |
1468 (let ((ret ,arg)) | 1462 (let ((ret ,arg)) |
1469 (put ',sym 'ibuffer-column-summary | 1463 (put ',sym 'ibuffer-column-summary |
1470 (cons ret (get ',sym 'ibuffer-column-summary))) | 1464 (cons ret (get ',sym 'ibuffer-column-summary))) |
1471 ret))) | 1465 ret))) |
1472 ;; We handle the `name' column specially. | 1466 (lambda (arg sym) |
1473 (if (eq sym 'ibuffer-make-column-name) | 1467 `(insert ,arg)))) |
1474 (lambda (arg sym) | |
1475 `(let ((pt (point))) | |
1476 (insert ,arg) | |
1477 (put-text-property pt (point) | |
1478 'category | |
1479 (ibuffer-buffer-name-category buffer mark)))) | |
1480 (lambda (arg sym) | |
1481 `(insert ,arg))))) | |
1482 (mincompform `(< strlen ,(if (integerp min) | 1468 (mincompform `(< strlen ,(if (integerp min) |
1483 min | 1469 min |
1484 'min))) | 1470 'min))) |
1485 (maxcompform `(> strlen ,(if (integerp max) | 1471 (maxcompform `(> strlen ,(if (integerp max) |
1486 max | 1472 max |
1609 (define-ibuffer-column name (:inline t | 1595 (define-ibuffer-column name (:inline t |
1610 :props | 1596 :props |
1611 ('mouse-face 'highlight 'keymap ibuffer-name-map | 1597 ('mouse-face 'highlight 'keymap ibuffer-name-map |
1612 'ibuffer-name-column t | 1598 'ibuffer-name-column t |
1613 'help-echo "mouse-1: mark this buffer\nmouse-2: select this buffer\nmouse-3: operate on this buffer")) | 1599 'help-echo "mouse-1: mark this buffer\nmouse-2: select this buffer\nmouse-3: operate on this buffer")) |
1614 (buffer-name)) | 1600 (propertize (buffer-name) 'font-lock-face (ibuffer-buffer-name-face buffer mark))) |
1615 | 1601 |
1616 (define-ibuffer-column size (:inline t) | 1602 (define-ibuffer-column size (:inline t) |
1617 (format "%s" (buffer-size))) | 1603 (format "%s" (buffer-size))) |
1618 | 1604 |
1619 (define-ibuffer-column mode (:inline t | 1605 (define-ibuffer-column mode (:inline t |
1639 (define-ibuffer-column filename-and-process (:name "Filename/Process") | 1625 (define-ibuffer-column filename-and-process (:name "Filename/Process") |
1640 (let ((proc (get-buffer-process buffer)) | 1626 (let ((proc (get-buffer-process buffer)) |
1641 (filename (ibuffer-make-column-filename buffer mark ibuffer-buf))) | 1627 (filename (ibuffer-make-column-filename buffer mark ibuffer-buf))) |
1642 (if proc | 1628 (if proc |
1643 (concat (propertize (format "(%s %s) " proc (process-status proc)) | 1629 (concat (propertize (format "(%s %s) " proc (process-status proc)) |
1644 'category | 1630 'font-lock-face 'italic) |
1645 (with-current-buffer ibuffer-buf | |
1646 (ibuffer-get-category 'ibuffer-category-process))) | |
1647 filename) | 1631 filename) |
1648 filename))) | 1632 filename))) |
1649 | 1633 |
1650 (defun ibuffer-format-column (str width alignment) | 1634 (defun ibuffer-format-column (str width alignment) |
1651 (let ((left (make-string (/ width 2) ? )) | 1635 (let ((left (make-string (/ width 2) ? )) |
1653 (case alignment | 1637 (case alignment |
1654 (:right (concat left right str)) | 1638 (:right (concat left right str)) |
1655 (:center (concat left str right)) | 1639 (:center (concat left str right)) |
1656 (t (concat str left right))))) | 1640 (t (concat str left right))))) |
1657 | 1641 |
1658 (defun ibuffer-buffer-name-category (buf mark) | 1642 (defun ibuffer-buffer-name-face (buf mark) |
1659 (cond ((char-equal mark ibuffer-marked-char) | 1643 (cond ((char-equal mark ibuffer-marked-char) |
1660 (ibuffer-get-category 'ibuffer-category-marked)) | 1644 ibuffer-marked-face) |
1661 ((char-equal mark ibuffer-deletion-char) | 1645 ((char-equal mark ibuffer-deletion-char) |
1662 (ibuffer-get-category 'ibuffer-category-deleted)) | 1646 ibuffer-deletion-face) |
1663 (t | 1647 (t |
1664 (let ((level -1) | 1648 (let ((level -1) |
1665 (i 0) | |
1666 result) | 1649 result) |
1667 (dolist (e ibuffer-fontification-alist result) | 1650 (dolist (e ibuffer-fontification-alist result) |
1668 (when (and (> (car e) level) | 1651 (when (and (> (car e) level) |
1669 (with-current-buffer buf | 1652 (with-current-buffer buf |
1670 (eval (cadr e)))) | 1653 (eval (nth 1 e)))) |
1671 (setq level (car e) | 1654 (setq level (car e) |
1672 result (car (nth i font-lock-category-alist)))) | 1655 result (nth 2 e)))))))) |
1673 (incf i)))))) | |
1674 | 1656 |
1675 (defun ibuffer-insert-buffer-line (buffer mark format) | 1657 (defun ibuffer-insert-buffer-line (buffer mark format) |
1676 "Insert a line describing BUFFER and MARK using FORMAT." | 1658 "Insert a line describing BUFFER and MARK using FORMAT." |
1677 (assert (eq major-mode 'ibuffer-mode)) | 1659 (assert (eq major-mode 'ibuffer-mode)) |
1678 (let ((beg (point))) | 1660 (let ((beg (point))) |
1920 ?- | 1902 ?- |
1921 ? )) | 1903 ? )) |
1922 str))) | 1904 str))) |
1923 (insert "\n")) | 1905 (insert "\n")) |
1924 (point)) | 1906 (point)) |
1925 `(ibuffer-title t category ,(ibuffer-get-category 'ibuffer-category-title))) | 1907 `(ibuffer-title t font-lock-face ,ibuffer-title-face)) |
1926 ;; Now, insert the summary columns. | 1908 ;; Now, insert the summary columns. |
1927 (goto-char (point-max)) | 1909 (goto-char (point-max)) |
1928 (if (get-text-property (1- (point-max)) 'ibuffer-summary) | 1910 (if (get-text-property (1- (point-max)) 'ibuffer-summary) |
1929 (delete-region (previous-single-property-change | 1911 (delete-region (previous-single-property-change |
1930 (point-max) 'ibuffer-summary) | 1912 (point-max) 'ibuffer-summary) |
2064 (progn | 2046 (progn |
2065 (insert "[ " display-name " ]") | 2047 (insert "[ " display-name " ]") |
2066 (point)) | 2048 (point)) |
2067 `(ibuffer-filter-group-name | 2049 `(ibuffer-filter-group-name |
2068 ,name | 2050 ,name |
2069 category ,(ibuffer-get-category 'ibuffer-category-filter-group-name) | 2051 font-lock-face ,ibuffer-filter-group-name-face |
2070 keymap ,ibuffer-mode-filter-group-map | 2052 keymap ,ibuffer-mode-filter-group-map |
2071 mouse-face highlight | 2053 mouse-face highlight |
2072 help-echo ,(concat filter-string "mouse-1: toggle marks in this group\nmouse-2: hide/show this filtering group "))) | 2054 help-echo ,(concat filter-string "mouse-1: toggle marks in this group\nmouse-2: hide/show this filtering group "))) |
2073 (insert "\n") | 2055 (insert "\n") |
2074 (when bmarklist | 2056 (when bmarklist |
2394 (buffer-disable-undo) | 2376 (buffer-disable-undo) |
2395 (setq truncate-lines ibuffer-truncate-lines) | 2377 (setq truncate-lines ibuffer-truncate-lines) |
2396 ;; This makes things less ugly for Emacs 21 users with a non-nil | 2378 ;; This makes things less ugly for Emacs 21 users with a non-nil |
2397 ;; `show-trailing-whitespace'. | 2379 ;; `show-trailing-whitespace'. |
2398 (setq show-trailing-whitespace nil) | 2380 (setq show-trailing-whitespace nil) |
2399 | |
2400 (set (make-local-variable 'font-lock-category-alist) nil) | |
2401 (set (make-local-variable 'ibuffer-category-alist) nil) | |
2402 (dolist (elt (list | |
2403 (cons (make-symbol "ibuffer-category-title") | |
2404 ibuffer-title-face) | |
2405 (cons (make-symbol "ibuffer-category-marked") | |
2406 ibuffer-marked-face) | |
2407 (cons (make-symbol "ibuffer-category-deleted") | |
2408 ibuffer-deletion-face) | |
2409 (cons (make-symbol "ibuffer-category-filter-group-name") | |
2410 ibuffer-filter-group-name-face) | |
2411 (cons (make-symbol "ibuffer-category-process") | |
2412 'italic) | |
2413 (cons (make-symbol "ibuffer-category-eliding-string") | |
2414 'bold))) | |
2415 (push (cons (intern (symbol-name (car elt))) (car elt)) ibuffer-category-alist) | |
2416 (push elt font-lock-category-alist)) | |
2417 (let ((i (1- (length ibuffer-fontification-alist)))) | |
2418 (while (>= i 0) | |
2419 (push (cons (make-symbol (format "ibuffer-category-%d" i)) | |
2420 (nth 2 (nth i ibuffer-fontification-alist))) | |
2421 font-lock-category-alist) | |
2422 (decf i))) | |
2423 (set (make-local-variable 'revert-buffer-function) | 2381 (set (make-local-variable 'revert-buffer-function) |
2424 #'ibuffer-update) | 2382 #'ibuffer-update) |
2425 (set (make-local-variable 'ibuffer-sorting-mode) | 2383 (set (make-local-variable 'ibuffer-sorting-mode) |
2426 ibuffer-default-sorting-mode) | 2384 ibuffer-default-sorting-mode) |
2427 (set (make-local-variable 'ibuffer-sorting-reversep) | 2385 (set (make-local-variable 'ibuffer-sorting-reversep) |