guix-commits
[Top][All Lists]
Advanced

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

13/35: emacs: list: Add 'guix-list-mode-initialize'.


From: Alex Kost
Subject: 13/35: emacs: list: Add 'guix-list-mode-initialize'.
Date: Fri, 11 Dec 2015 11:42:34 +0000

alezost pushed a commit to branch wip-refactor-emacs-ui
in repository guix.

commit 38012e77bf85b2bf306e43d40880084c1723e00a
Author: Alex Kost <address@hidden>
Date:   Thu Nov 19 16:43:10 2015 +0300

    emacs: list: Add 'guix-list-mode-initialize'.
    
    * emacs/guix-list.el (guix-list-mode-initialize): New procedure.
      (guix-list-define-entry-type): Use it.
---
 emacs/guix-list.el |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/emacs/guix-list.el b/emacs/guix-list.el
index aab3ef8..947a545 100644
--- a/emacs/guix-list.el
+++ b/emacs/guix-list.el
@@ -429,6 +429,8 @@ Same as `tabulated-list-sort', but also restore marks after 
sorting."
   (guix-list-restore-marks))
 
 
+;;; Major mode and interface definer
+
 (defvar guix-list-mode-map
   (let ((map (make-sparse-keymap)))
     (set-keymap-parent
@@ -442,11 +444,18 @@ Same as `tabulated-list-sort', but also restore marks 
after sorting."
     (define-key map (kbd "DEL") 'guix-list-unmark-backward)
     (define-key map [remap tabulated-list-sort] 'guix-list-sort)
     map)
-  "Parent keymap for list buffers.")
+  "Keymap for `guix-list-mode' buffers.")
 
 (define-derived-mode guix-list-mode tabulated-list-mode "Guix-List"
-  "Parent mode for displaying information in list buffers."
-  (setq tabulated-list-padding 2))
+  "Parent mode for displaying data in 'list' form.")
+
+(defun guix-list-mode-initialize (entry-type)
+  "Set up the current 'list' buffer for displaying ENTRY-TYPE entries."
+  (setq tabulated-list-padding  2
+        tabulated-list-format   (guix-list-tabulated-format entry-type)
+        tabulated-list-sort-key (guix-list-tabulated-sort-key entry-type))
+  (setq-local guix-list-marks   (guix-list-marks entry-type))
+  (tabulated-list-init-header))
 
 (defmacro guix-list-define-entry-type (entry-type &rest args)
   "Define common stuff for displaying ENTRY-TYPE entries in list buffers.
@@ -515,12 +524,7 @@ See also `guix-list-describe'."
 
          (defun ,init-fun ()
            ,(concat "Initial settings for `" mode-str "'.")
-           (setq tabulated-list-sort-key (guix-list-tabulated-sort-key
-                                          ',entry-type)
-                 tabulated-list-format (guix-list-tabulated-format
-                                        ',entry-type))
-           (setq-local guix-list-marks (guix-list-marks ',entry-type))
-           (tabulated-list-init-header))
+           (guix-list-mode-initialize ',entry-type))
 
          (guix-alist-put!
           '((describe       . ,describe-var)



reply via email to

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