org-lint-misplaced-heading: Reduce false-positive rate
* lisp/org-lint.el (org-lint-misplaced-heading): Be more strict matching potential misplaced headings - only do it on another heading and inside paragraphs. Link: https://orgmode.org/list/87a5jv77qs.fsf@gmail.com
This commit is contained in:
parent
6c862699a6
commit
915e883645
|
@ -388,17 +388,24 @@ called with one argument, the key used for comparison."
|
||||||
(dolist (e originals reports) (funcall make-report (cdr e) (car e)))))
|
(dolist (e originals reports) (funcall make-report (cdr e) (car e)))))
|
||||||
|
|
||||||
(defun org-lint-misplaced-heading (ast)
|
(defun org-lint-misplaced-heading (ast)
|
||||||
"Check for accidentally misplaced heading lines."
|
"Check for accidentally misplaced heading lines.
|
||||||
|
Example:
|
||||||
|
** Heading 1
|
||||||
|
** Heading 2** Oops heading 3
|
||||||
|
** Heading 4"
|
||||||
(org-with-point-at ast
|
(org-with-point-at ast
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
(let (result)
|
(let (result)
|
||||||
;; Heuristics for 2+ level heading not at bol.
|
;; Heuristics for 2+ level heading not at bol.
|
||||||
(while (re-search-forward (rx (not (any "*\n\r ,")) ;; Not a bol; not escaped ,** heading; not " *** words"
|
(while (re-search-forward (rx (not (any "*\n\r ,")) ;; Not a bol; not escaped ,** heading; not " *** words"
|
||||||
"*" (1+ "*") " ") nil t)
|
"*" (1+ "*") " ") nil t)
|
||||||
(unless (org-element-type-p
|
;; Limit false-positive rate by only complaining about
|
||||||
|
;; ** Heading** Heading and
|
||||||
|
;; ** Oops heading
|
||||||
|
;; Paragraph** Oops heading
|
||||||
|
(when (org-element-type-p
|
||||||
(org-element-at-point)
|
(org-element-at-point)
|
||||||
'(comment-block example-block export-block src-block)
|
'(paragraph headline))
|
||||||
) ; Inside a block, where the chances to have heading a slim.
|
|
||||||
(push (list (match-beginning 0) "Possibly misplaced heading line") result)))
|
(push (list (match-beginning 0) "Possibly misplaced heading line") result)))
|
||||||
result)))
|
result)))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue