From ceea647c72cac582126688c71e19e4c9f9137a63 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 17 Nov 2015 22:19:14 +0300 Subject: [PATCH] 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'. --- emacs/guix-base.el | 46 +++++---------------------------------------- emacs/guix-utils.el | 9 +++++++++ 2 files changed, 14 insertions(+), 41 deletions(-) diff --git a/emacs/guix-base.el b/emacs/guix-base.el index 7055a0984e..43dec3dca3 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -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." diff --git a/emacs/guix-utils.el b/emacs/guix-utils.el index 5a0cad4f2a..e24b58fb17 100644 --- a/emacs/guix-utils.el +++ b/emacs/guix-utils.el @@ -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) "-")))