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'.
master
Alex Kost 2015-11-17 22:19:14 +03:00
parent 73ce3c19c4
commit ceea647c72
2 changed files with 14 additions and 41 deletions

View File

@ -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."

View File

@ -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) "-")))