~ruther/guix-local

ceea647c72cac582126688c71e19e4c9f9137a63 — Alex Kost 10 years ago 73ce3c1
emacs: Simplify defining parameter titles.

* emacs/guix-utils.el (guix-symbol-title): New procedure.
* emacs/guix-base.el (guix-get-param-title): Use it.
  (guix-param-titles): Remove most titles as they are automatically
  defined by 'guix-symbol-title'.
2 files changed, 14 insertions(+), 41 deletions(-)

M emacs/guix-base.el
M emacs/guix-utils.el
M emacs/guix-base.el => emacs/guix-base.el +5 -41
@@ 41,48 41,14 @@

(defvar guix-param-titles
  '((package
     (id                . "ID")
     (name              . "Name")
     (version           . "Version")
     (source            . "Source")
     (license           . "License")
     (synopsis          . "Synopsis")
     (description       . "Description")
     (home-url          . "Home page")
     (outputs           . "Outputs")
     (inputs            . "Inputs")
     (native-inputs     . "Native inputs")
     (propagated-inputs . "Propagated inputs")
     (location          . "Location")
     (installed         . "Installed"))
     (home-url          . "Home page"))
    (installed
     (path              . "Installed path")
     (dependencies      . "Dependencies")
     (output            . "Output"))
     (path              . "Installed path"))
    (output
     (id                . "ID")
     (name              . "Name")
     (version           . "Version")
     (source            . "Source")
     (license           . "License")
     (synopsis          . "Synopsis")
     (description       . "Description")
     (home-url          . "Home page")
     (output            . "Output")
     (inputs            . "Inputs")
     (native-inputs     . "Native inputs")
     (propagated-inputs . "Propagated inputs")
     (location          . "Location")
     (installed         . "Installed")
     (path              . "Installed path")
     (dependencies      . "Dependencies"))
     (path              . "Installed path"))
    (generation
     (id                . "ID")
     (number            . "Number")
     (prev-number       . "Previous number")
     (current           . "Current")
     (path              . "Path")
     (time              . "Time")))
     (prev-number       . "Previous number")))
  "List for defining titles of entry parameters.
Titles are used for displaying information about entries.
Each element of the list has a form:


@@ 93,9 59,7 @@ Each element of the list has a form:
  "Return title of an ENTRY-TYPE entry parameter PARAM."
  (or (guix-assq-value guix-param-titles
                       entry-type param)
      (prog1 (symbol-name param)
        (message "Couldn't find title for '%S %S'."
                 entry-type param))))
      (guix-symbol-title param)))

(defun guix-get-name-spec (name version &optional output)
  "Return Guix package specification by its NAME, VERSION and OUTPUT."

M emacs/guix-utils.el => emacs/guix-utils.el +9 -0
@@ 165,6 165,15 @@ This function is similar to `shell-quote-argument', but less strict."
     (replace-regexp-in-string
      (rx (not (any alnum "-=,./\n"))) "\\\\\\&" argument))))

(defun guix-symbol-title (symbol)
  "Return SYMBOL's name, a string.
This is like `symbol-name', but fancier."
  (if (eq symbol 'id)
      "ID"
    (let ((str (replace-regexp-in-string "-" " " (symbol-name symbol))))
      (concat (capitalize (substring str 0 1))
              (substring str 1)))))

(defun guix-command-symbol (&optional args)
  "Return symbol by concatenating 'guix' and ARGS (strings)."
  (intern (guix-concat-strings (cons "guix" args) "-")))