emacs: Add customization groups for faces.
* emacs/guix.el (guix-faces): New custom group. * emacs/guix-base.el (guix-operation-option-key): Use it. (guix-define-buffer-type): Generate faces group. * emacs/guix-info.el: Adjust faces to use new groups. (guix-info-faces): New custom group. * emacs/guix-list.el: Likewise (guix-list-faces): New custom group.
This commit is contained in:
		
							parent
							
								
									50f5c46d06
								
							
						
					
					
						commit
						46e17df661
					
				
					 4 changed files with 46 additions and 26 deletions
				
			
		| 
						 | 
				
			
			@ -414,6 +414,7 @@ following keywords are available:
 | 
			
		|||
         (buf-str        (concat buf-type-str " buffer"))
 | 
			
		||||
         (prefix         (concat "guix-" entry-type-str "-" buf-type-str))
 | 
			
		||||
         (group          (intern prefix))
 | 
			
		||||
         (faces-group    (intern (concat prefix "-faces")))
 | 
			
		||||
         (mode-map-str   (concat prefix "-mode-map"))
 | 
			
		||||
         (parent-mode    (intern (concat "guix-" buf-type-str "-mode")))
 | 
			
		||||
         (mode           (intern (concat prefix "-mode")))
 | 
			
		||||
| 
						 | 
				
			
			@ -442,6 +443,10 @@ following keywords are available:
 | 
			
		|||
         :prefix ,(concat prefix "-")
 | 
			
		||||
         :group ',(intern (concat "guix-" buf-type-str)))
 | 
			
		||||
 | 
			
		||||
       (defgroup ,faces-group nil
 | 
			
		||||
         ,(concat "Faces for " buf-type-str " buffer with " entry-str ".")
 | 
			
		||||
         :group ',(intern (concat "guix-" buf-type-str "-faces")))
 | 
			
		||||
 | 
			
		||||
       (defcustom ,buf-name-var ,buf-name-val
 | 
			
		||||
         ,(concat "Default name of the " buf-str " for displaying " entry-str ".")
 | 
			
		||||
         :type 'string
 | 
			
		||||
| 
						 | 
				
			
			@ -789,7 +794,7 @@ GENERATION is a generation number of `guix-profile' profile."
 | 
			
		|||
(defface guix-operation-option-key
 | 
			
		||||
  '((t :inherit font-lock-warning-face))
 | 
			
		||||
  "Face used for the keys of operation options."
 | 
			
		||||
  :group 'guix)
 | 
			
		||||
  :group 'guix-faces)
 | 
			
		||||
 | 
			
		||||
(defcustom guix-operation-confirm t
 | 
			
		||||
  "If nil, do not prompt to confirm an operation."
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,25 +33,30 @@
 | 
			
		|||
  :prefix "guix-info-"
 | 
			
		||||
  :group 'guix)
 | 
			
		||||
 | 
			
		||||
(defgroup guix-info-faces nil
 | 
			
		||||
  "Faces for info buffers."
 | 
			
		||||
  :group 'guix-info
 | 
			
		||||
  :group 'guix-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-info-param-title
 | 
			
		||||
  '((t :inherit font-lock-type-face))
 | 
			
		||||
  "Face used for titles of parameters."
 | 
			
		||||
  :group 'guix-info)
 | 
			
		||||
  :group 'guix-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-info-file-path
 | 
			
		||||
  '((t :inherit link))
 | 
			
		||||
  "Face used for file paths."
 | 
			
		||||
  :group 'guix-info)
 | 
			
		||||
  :group 'guix-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-info-url
 | 
			
		||||
  '((t :inherit link))
 | 
			
		||||
  "Face used for URLs."
 | 
			
		||||
  :group 'guix-info)
 | 
			
		||||
  :group 'guix-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-info-time
 | 
			
		||||
  '((t :inherit font-lock-constant-face))
 | 
			
		||||
  "Face used for timestamps."
 | 
			
		||||
  :group 'guix-info)
 | 
			
		||||
  :group 'guix-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-info-action-button
 | 
			
		||||
  '((((type x w32 ns) (class color))
 | 
			
		||||
| 
						 | 
				
			
			@ -59,7 +64,7 @@
 | 
			
		|||
     :background "lightgrey" :foreground "black")
 | 
			
		||||
    (t :inherit button))
 | 
			
		||||
  "Face used for action buttons."
 | 
			
		||||
  :group 'guix-info)
 | 
			
		||||
  :group 'guix-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-info-action-button-mouse
 | 
			
		||||
  '((((type x w32 ns) (class color))
 | 
			
		||||
| 
						 | 
				
			
			@ -67,7 +72,7 @@
 | 
			
		|||
     :background "grey90" :foreground "black")
 | 
			
		||||
    (t :inherit highlight))
 | 
			
		||||
  "Mouse face used for action buttons."
 | 
			
		||||
  :group 'guix-info)
 | 
			
		||||
  :group 'guix-info-faces)
 | 
			
		||||
 | 
			
		||||
(defcustom guix-info-ignore-empty-vals nil
 | 
			
		||||
  "If non-nil, do not display parameters with nil values."
 | 
			
		||||
| 
						 | 
				
			
			@ -414,43 +419,43 @@ See `insert-text-button' for the meaning of PROPERTIES."
 | 
			
		|||
  '((((type tty pc) (class color)) :weight bold)
 | 
			
		||||
    (t :height 1.6 :weight bold :inherit variable-pitch))
 | 
			
		||||
  "Face for package name and version headings."
 | 
			
		||||
  :group 'guix-package-info)
 | 
			
		||||
  :group 'guix-package-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-package-info-name
 | 
			
		||||
  '((t :inherit font-lock-keyword-face))
 | 
			
		||||
  "Face used for a name of a package."
 | 
			
		||||
  :group 'guix-package-info)
 | 
			
		||||
  :group 'guix-package-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-package-info-name-button
 | 
			
		||||
  '((t :inherit button))
 | 
			
		||||
  "Face used for a full name that can be used to describe a package."
 | 
			
		||||
  :group 'guix-package-info)
 | 
			
		||||
  :group 'guix-package-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-package-info-version
 | 
			
		||||
  '((t :inherit font-lock-builtin-face))
 | 
			
		||||
  "Face used for a version of a package."
 | 
			
		||||
  :group 'guix-package-info)
 | 
			
		||||
  :group 'guix-package-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-package-info-synopsis
 | 
			
		||||
  '((((type tty pc) (class color)) :weight bold)
 | 
			
		||||
    (t :height 1.1 :weight bold :inherit variable-pitch))
 | 
			
		||||
  "Face used for a synopsis of a package."
 | 
			
		||||
  :group 'guix-package-info)
 | 
			
		||||
  :group 'guix-package-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-package-info-description
 | 
			
		||||
  '((t))
 | 
			
		||||
  "Face used for a description of a package."
 | 
			
		||||
  :group 'guix-package-info)
 | 
			
		||||
  :group 'guix-package-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-package-info-license
 | 
			
		||||
  '((t :inherit font-lock-string-face))
 | 
			
		||||
  "Face used for a license of a package."
 | 
			
		||||
  :group 'guix-package-info)
 | 
			
		||||
  :group 'guix-package-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-package-info-location
 | 
			
		||||
  '((t :inherit link))
 | 
			
		||||
  "Face used for a location of a package."
 | 
			
		||||
  :group 'guix-package-info)
 | 
			
		||||
  :group 'guix-package-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-package-info-installed-outputs
 | 
			
		||||
  '((default :weight bold)
 | 
			
		||||
| 
						 | 
				
			
			@ -462,17 +467,17 @@ See `insert-text-button' for the meaning of PROPERTIES."
 | 
			
		|||
     :foreground "green")
 | 
			
		||||
    (t :underline t))
 | 
			
		||||
  "Face used for installed outputs of a package."
 | 
			
		||||
  :group 'guix-package-info)
 | 
			
		||||
  :group 'guix-package-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-package-info-uninstalled-outputs
 | 
			
		||||
  '((t :weight bold))
 | 
			
		||||
  "Face used for uninstalled outputs of a package."
 | 
			
		||||
  :group 'guix-package-info)
 | 
			
		||||
  :group 'guix-package-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-package-info-obsolete
 | 
			
		||||
  '((t :inherit error))
 | 
			
		||||
  "Face used if a package is obsolete."
 | 
			
		||||
  :group 'guix-package-info)
 | 
			
		||||
  :group 'guix-package-info-faces)
 | 
			
		||||
 | 
			
		||||
(defvar guix-info-insert-package-function
 | 
			
		||||
  #'guix-package-info-insert-with-heading
 | 
			
		||||
| 
						 | 
				
			
			@ -541,7 +546,7 @@ Face name is `guix-package-info-TYPE-inputs'."
 | 
			
		|||
       (defface ,face
 | 
			
		||||
         '((t :inherit guix-package-info-name-button))
 | 
			
		||||
         ,(concat "Face used for " type-desc "inputs of a package.")
 | 
			
		||||
         :group 'guix-package-info)
 | 
			
		||||
         :group 'guix-package-info-faces)
 | 
			
		||||
 | 
			
		||||
       (define-button-type ',btn
 | 
			
		||||
         :supertype 'guix-package-name
 | 
			
		||||
| 
						 | 
				
			
			@ -672,7 +677,7 @@ ENTRY is an alist with package info."
 | 
			
		|||
(defface guix-package-info-source
 | 
			
		||||
  '((t :inherit link :underline nil))
 | 
			
		||||
  "Face used for a source URL of a package."
 | 
			
		||||
  :group 'guix-package-info)
 | 
			
		||||
  :group 'guix-package-info-faces)
 | 
			
		||||
 | 
			
		||||
(defcustom guix-package-info-auto-find-source nil
 | 
			
		||||
  "If non-nil, find a source file after pressing a \"Show\" button.
 | 
			
		||||
| 
						 | 
				
			
			@ -825,17 +830,17 @@ If nil, insert output in a default way.")
 | 
			
		|||
(defface guix-generation-info-number
 | 
			
		||||
  '((t :inherit font-lock-keyword-face))
 | 
			
		||||
  "Face used for a number of a generation."
 | 
			
		||||
  :group 'guix-generation-info)
 | 
			
		||||
  :group 'guix-generation-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-generation-info-current
 | 
			
		||||
  '((t :inherit guix-package-info-installed-outputs))
 | 
			
		||||
  "Face used if a generation is the current one."
 | 
			
		||||
  :group 'guix-generation-info)
 | 
			
		||||
  :group 'guix-generation-info-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-generation-info-not-current
 | 
			
		||||
  '((t nil))
 | 
			
		||||
  "Face used if a generation is not the current one."
 | 
			
		||||
  :group 'guix-generation-info)
 | 
			
		||||
  :group 'guix-generation-info-faces)
 | 
			
		||||
 | 
			
		||||
(defvar guix-info-insert-generation-function nil
 | 
			
		||||
  "Function used to insert a generation information.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,10 +35,15 @@
 | 
			
		|||
  :prefix "guix-list-"
 | 
			
		||||
  :group 'guix)
 | 
			
		||||
 | 
			
		||||
(defgroup guix-list-faces nil
 | 
			
		||||
  "Faces for list buffers."
 | 
			
		||||
  :group 'guix-list
 | 
			
		||||
  :group 'guix-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-list-file-path
 | 
			
		||||
  '((t :inherit guix-info-file-path))
 | 
			
		||||
  "Face used for file paths."
 | 
			
		||||
  :group 'guix-list)
 | 
			
		||||
  :group 'guix-list-faces)
 | 
			
		||||
 | 
			
		||||
(defcustom guix-list-describe-warning-count 10
 | 
			
		||||
  "The maximum number of entries for describing without a warning.
 | 
			
		||||
| 
						 | 
				
			
			@ -488,12 +493,12 @@ With prefix (if ARG is non-nil), describe entries marked with any mark."
 | 
			
		|||
(defface guix-package-list-installed
 | 
			
		||||
  '((t :inherit guix-package-info-installed-outputs))
 | 
			
		||||
  "Face used if there are installed outputs for the current package."
 | 
			
		||||
  :group 'guix-package-list)
 | 
			
		||||
  :group 'guix-package-list-faces)
 | 
			
		||||
 | 
			
		||||
(defface guix-package-list-obsolete
 | 
			
		||||
  '((t :inherit guix-package-info-obsolete))
 | 
			
		||||
  "Face used if a package is obsolete."
 | 
			
		||||
  :group 'guix-package-list)
 | 
			
		||||
  :group 'guix-package-list-faces)
 | 
			
		||||
 | 
			
		||||
(defcustom guix-package-list-generation-marking-enabled nil
 | 
			
		||||
  "If non-nil, allow putting marks in a list with 'generation packages'.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,6 +39,11 @@
 | 
			
		|||
  :prefix "guix-"
 | 
			
		||||
  :group 'external)
 | 
			
		||||
 | 
			
		||||
(defgroup guix-faces nil
 | 
			
		||||
  "Guix faces."
 | 
			
		||||
  :group 'guix
 | 
			
		||||
  :group 'faces)
 | 
			
		||||
 | 
			
		||||
(defcustom guix-list-single-package nil
 | 
			
		||||
  "If non-nil, list a package even if it is the only matching result.
 | 
			
		||||
If nil, show a single package in the info buffer."
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue