mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-12 06:06:53 -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)")
|
(format #f (_ "line ~a is way too long (~a characters)")
|
||||||
line-number (string-length line)))))
|
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
|
(define %formatting-reporters
|
||||||
;; List of procedures that report formatting issues. These are not separate
|
;; List of procedures that report formatting issues. These are not separate
|
||||||
;; checkers because they would need to re-read the file.
|
;; checkers because they would need to re-read the file.
|
||||||
(list report-tabulations
|
(list report-tabulations
|
||||||
report-trailing-white-space
|
report-trailing-white-space
|
||||||
report-long-line))
|
report-long-line
|
||||||
|
report-lone-parentheses))
|
||||||
|
|
||||||
(define* (report-formatting-issues package file starting-line
|
(define* (report-formatting-issues package file starting-line
|
||||||
#:key (reporters %formatting-reporters))
|
#:key (reporters %formatting-reporters))
|
||||||
|
|
|
@ -512,6 +512,16 @@ (define-syntax-rule (with-warnings body ...)
|
||||||
(check-source pkg))))
|
(check-source pkg))))
|
||||||
"not reachable: 404")))
|
"not reachable: 404")))
|
||||||
|
|
||||||
|
(test-assert "formatting: lonely parentheses"
|
||||||
|
(string-contains
|
||||||
|
(with-warnings
|
||||||
|
(check-formatting
|
||||||
|
(
|
||||||
|
dummy-package "ugly as hell!"
|
||||||
|
)
|
||||||
|
))
|
||||||
|
"lonely"))
|
||||||
|
|
||||||
(test-assert "formatting: tabulation"
|
(test-assert "formatting: tabulation"
|
||||||
(string-contains
|
(string-contains
|
||||||
(with-warnings
|
(with-warnings
|
||||||
|
|
Loading…
Reference in a new issue