Nicolas Goaziou пре 8 година
родитељ
комит
f6525e8fe4
2 измењених фајлова са 28 додато и 1 уклоњено
  1. 16 1
      lisp/org-lint.el
  2. 12 0
      testing/lisp/test-org-lint.el

+ 16 - 1
lisp/org-lint.el

@@ -97,6 +97,7 @@
 ;;   - indented diary-sexps
 ;;   - obsolete QUOTE section
 ;;   - obsolete "file+application" link
+;;   - blank headlines with tags
 
 
 ;;; Code:
@@ -278,7 +279,12 @@
    (make-org-lint-checker
     :name 'file-application
     :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.")
 
 (defun org-lint--collect-duplicates
@@ -1014,6 +1020,15 @@ Use \"export %s\" instead"
 			   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
 

+ 12 - 0
testing/lisp/test-org-lint.el

@@ -472,5 +472,17 @@ SCHEDULED: <2012-03-29 thu.>"
 #+end_src"
      (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)
 ;;; test-org-lint.el ends here