~ruther/guix-local

46e17df661fa6c92d0863827f3affb9385b95395 — Alex Kost 10 years ago 50f5c46
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.
4 files changed, 46 insertions(+), 26 deletions(-)

M emacs/guix-base.el
M emacs/guix-info.el
M emacs/guix-list.el
M emacs/guix.el
M emacs/guix-base.el => emacs/guix-base.el +6 -1
@@ 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."

M emacs/guix-info.el => emacs/guix-info.el +27 -22
@@ 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.

M emacs/guix-list.el => emacs/guix-list.el +8 -3
@@ 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'.

M emacs/guix.el => emacs/guix.el +5 -0
@@ 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."