forked from mirrors/org-mode
org-lint: Add checker for empty headlines with tags
* lisp/org-lint.el (org-lint--checkers): Add checker. (org-lint-empty-headline-with-tags): New function. * testing/lisp/test-org-lint.el (test-org-lint/empty-headline-with-tags): New test.
This commit is contained in:
parent
b5a67ebddd
commit
013c0af8b0
|
@ -97,6 +97,7 @@
|
||||||
;; - indented diary-sexps
|
;; - indented diary-sexps
|
||||||
;; - obsolete QUOTE section
|
;; - obsolete QUOTE section
|
||||||
;; - obsolete "file+application" link
|
;; - obsolete "file+application" link
|
||||||
|
;; - blank headlines with tags
|
||||||
|
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
@ -278,7 +279,12 @@
|
||||||
(make-org-lint-checker
|
(make-org-lint-checker
|
||||||
:name 'file-application
|
:name 'file-application
|
||||||
:description "Report obsolete \"file+application\" link"
|
:description "Report obsolete \"file+application\" link"
|
||||||
:categories '(link obsolete)))
|
:categories '(link obsolete))
|
||||||
|
(make-org-lint-checker
|
||||||
|
:name 'empty-headline-with-tags
|
||||||
|
:description "Report ambiguous empty headlines with tags"
|
||||||
|
:categories '(headline)
|
||||||
|
:trust 'low))
|
||||||
"List of all available checkers.")
|
"List of all available checkers.")
|
||||||
|
|
||||||
(defun org-lint--collect-duplicates
|
(defun org-lint--collect-duplicates
|
||||||
|
@ -1014,6 +1020,15 @@ Use \"export %s\" instead"
|
||||||
reports))))))))))))
|
reports))))))))))))
|
||||||
reports))
|
reports))
|
||||||
|
|
||||||
|
(defun org-lint-empty-headline-with-tags (ast)
|
||||||
|
(org-element-map ast '(headline inlinetask)
|
||||||
|
(lambda (h)
|
||||||
|
(let ((title (org-element-property :raw-value h)))
|
||||||
|
(and (string-match-p "\\`:[[:alnum:]_@#%:]+:\\'" title)
|
||||||
|
(list (org-element-property :begin h)
|
||||||
|
(format "Headline containing only tags is ambiguous: %S"
|
||||||
|
title)))))))
|
||||||
|
|
||||||
|
|
||||||
;;; Reports UI
|
;;; Reports UI
|
||||||
|
|
||||||
|
|
|
@ -475,5 +475,17 @@ SCHEDULED: <2012-03-29 thu.>"
|
||||||
#+end_src"
|
#+end_src"
|
||||||
(org-lint '(wrong-header-value)))))
|
(org-lint '(wrong-header-value)))))
|
||||||
|
|
||||||
|
(ert-deftest test-org-lint/empty-headline-with-tags ()
|
||||||
|
"Test `org-lint-empty-headline-with-tags' checker."
|
||||||
|
(should
|
||||||
|
(org-test-with-temp-text "* :tag:"
|
||||||
|
(org-lint '(empty-headline-with-tags))))
|
||||||
|
(should
|
||||||
|
(org-test-with-temp-text "* :tag: "
|
||||||
|
(org-lint '(empty-headline-with-tags))))
|
||||||
|
(should-not
|
||||||
|
(org-test-with-temp-text "* notag: "
|
||||||
|
(org-lint '(empty-headline-with-tags)))))
|
||||||
|
|
||||||
(provide 'test-org-lint)
|
(provide 'test-org-lint)
|
||||||
;;; test-org-lint.el ends here
|
;;; test-org-lint.el ends here
|
||||||
|
|
Loading…
Reference in a new issue