~ruther/guix-local

729bfe368973f57a88ab132c23ca103a58bee78a — Ricardo Wurmus 1 year, 19 days ago 36c9996
import/utils: Wrap terms starting with @ in descriptions.

* tests/import-utils.scm ("beautify-description: escape @stuff"): Add test.
* guix/import/utils.scm (beautify-description): Also wrap terms in @code{...}
that start with an escaped @.

Change-Id: I424f626635b821af6f4c16c97b8724cdaf99de45
2 files changed, 7 insertions(+), 3 deletions(-)

M guix/import/utils.scm
M tests/import-utils.scm
M guix/import/utils.scm => guix/import/utils.scm +3 -3
@@ 342,12 342,12 @@ LENGTH characters."
                   ;; Escape single @ to prevent it from being understood as
                   ;; invalid Texinfo syntax.
                   (cut regexp-substitute/global #f "@" <> 'pre "@@" 'post)
                   ;; Wrap camelCase or PascalCase words or text followed
                   ;; immediately by "()" in @code{...}.
                   ;; Wrap camelCase, PascalCase words, text followed
                   ;; immediately by "()", or text starting with "@@" in @code{...}.
                   (lambda (word)
                     (let ((pattern
                            (make-regexp
                             "([A-Z][a-z]+[A-Z]|[a-z]+[A-Z]|.+\\(\\))")))
                             "((@@)?[A-Z][a-z]+[A-Z]|(@@)?[a-z]+[A-Z]|(@@)?.+\\(\\))")))
                       (match (list-matches pattern word)
                         (() word)
                         ((m . rest)

M tests/import-utils.scm => tests/import-utils.scm +4 -0
@@ 53,6 53,10 @@ Differences are hard to spot, e.g. in CLOS vs. GOOPS."))
  "This @@ is not Texinfo syntax.  Neither is this %@@>%."
  (beautify-description "This @ is not Texinfo syntax.  Neither is this %@>%."))

(test-equal "beautify-description: escape @stuff"
  "This is not valid syntax: @code{@@importFrom} oh dear."
  (beautify-description "This is not valid syntax: @importFrom oh dear."))

(test-equal "beautify-description: wrap PascalCase words in @code"
  "The term @code{DelayedMatrix} refers to a class."
  (beautify-description "The term DelayedMatrix refers to a class."))