lint: Allow texinfo markup at beginning of description.

* guix/lint.scm(starts-with-texinfo-markup?): New function.
(check-description-style)[check-proper-start]: Add condition.
* tests/lint.scm: Add test case.

Change-Id: I674988882265d9e2041d48dba0f9627cd68bf292
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Gabriel Wicki 2024-12-02 23:36:44 +01:00 committed by Ludovic Courtès
parent 00879f94ee
commit f28c32089d
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 12 additions and 1 deletions

View file

@ -370,6 +370,9 @@ (define make-flags/sexp
(define (properly-starts-sentence? s)
(string-match "^[(\"'`[:upper:][:digit:]]" s))
(define (starts-with-texinfo-markup? s)
(string-match "^@(acronym|dfn|code|command|emph|file|quotation|samp|uref|url)\\{.*?\\}" s))
(define (starts-with-abbreviation? s)
"Return #t if S starts with what looks like an abbreviation or acronym."
(string-match "^[A-Z][A-Z0-9]+\\>" s))
@ -447,6 +450,7 @@ (define (check-proper-start description)
'pre "-" 'post)))
(if (or (string-null? description)
(properly-starts-sentence? description)
(starts-with-texinfo-markup? description)
(string-prefix-ci? first-word (package-name package))
(string-suffix-ci? first-word (package-name package)))
'()
@ -513,7 +517,9 @@ (define (check-no-trailing-whitespace description)
(match (check-texinfo-markup description)
((and warning (? lint-warning?)) (list warning))
(plain-description
(check-proper-start plain-description))))
(if (string-prefix? "@" description)
'()
(check-proper-start plain-description)))))
(list
(make-warning package
(G_ "invalid description: ~s")

View file

@ -121,6 +121,11 @@ (define (warning-contains? str warnings)
(description "bad description."))))
(check-description-style pkg))))
(test-equal "description: may start with texinfo markup"
'()
(check-description-style
(dummy-package "x" (description "@emph{Maxwell Equations of Software}"))))
(test-equal "description: may start with a digit"
'()
(let ((pkg (dummy-package "x"