mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
lint: Report lonely parentheses.
* guix/scripts/lint.scm (%hanging-paren-rx): New variable. (report-lone-parentheses): New procedure. (%formatting-reporters): Use it. * tests/lint.scm ("formatting: lonely parentheses"): New test.
This commit is contained in:
parent
24a848c8e3
commit
e0566f12f8
2 changed files with 24 additions and 1 deletions
|
@ -594,12 +594,25 @@ (define (report-long-line package line line-number)
|
|||
(format #f (_ "line ~a is way too long (~a characters)")
|
||||
line-number (string-length line)))))
|
||||
|
||||
(define %hanging-paren-rx
|
||||
(make-regexp "^[[:blank:]]*[()]+[[:blank:]]*$"))
|
||||
|
||||
(define (report-lone-parentheses package line line-number)
|
||||
"Emit a warning if LINE contains hanging parentheses."
|
||||
(when (regexp-exec %hanging-paren-rx line)
|
||||
(emit-warning package
|
||||
(format #f
|
||||
(_ "line ~a: parentheses feel lonely, \
|
||||
move to the previous or next line")
|
||||
line-number))))
|
||||
|
||||
(define %formatting-reporters
|
||||
;; List of procedures that report formatting issues. These are not separate
|
||||
;; checkers because they would need to re-read the file.
|
||||
(list report-tabulations
|
||||
report-trailing-white-space
|
||||
report-long-line))
|
||||
report-long-line
|
||||
report-lone-parentheses))
|
||||
|
||||
(define* (report-formatting-issues package file starting-line
|
||||
#:key (reporters %formatting-reporters))
|
||||
|
|
|
@ -512,6 +512,16 @@ (define-syntax-rule (with-warnings body ...)
|
|||
(check-source pkg))))
|
||||
"not reachable: 404")))
|
||||
|
||||
(test-assert "formatting: lonely parentheses"
|
||||
(string-contains
|
||||
(with-warnings
|
||||
(check-formatting
|
||||
(
|
||||
dummy-package "ugly as hell!"
|
||||
)
|
||||
))
|
||||
"lonely"))
|
||||
|
||||
(test-assert "formatting: tabulation"
|
||||
(string-contains
|
||||
(with-warnings
|
||||
|
|
Loading…
Reference in a new issue