Skip to content

Commit

Permalink
Add customization point to retrieve next-checkers
Browse files Browse the repository at this point in the history
  • Loading branch information
damienrg committed Nov 13, 2020
1 parent 79c9245 commit 0d250c9
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions flycheck.el
Original file line number Diff line number Diff line change
Expand Up @@ -2331,7 +2331,7 @@ Pop up a help buffer with the documentation of CHECKER."
(modes (flycheck-checker-get checker 'modes))
(predicate (flycheck-checker-get checker 'predicate))
(print-doc (flycheck-checker-get checker 'print-doc))
(next-checkers (flycheck-checker-get checker 'next-checkers))
(next-checkers (flycheck-next-checkers checker))
(help-xref-following
;; Ensure that we don't reuse buffers like `flycheck-verify-checker',
;; and that we don't error out if a `help-flycheck-checker-doc' button
Expand Down Expand Up @@ -2548,13 +2548,25 @@ NEXT should be either a cons (NEXT-CHECKER . LEVEL) or a
symbol."
(if (consp next) (cdr next) next))

(defun flycheck-next-checkers (checker)
"Return next checkers of CHECKER."
(let ((next-checkers-function (flycheck-checker-get checker 'next-checkers-function)))
(if (functionp next-checkers-function)
(funcall next-checkers-function checker)
(flycheck-checker-get checker 'next-checkers)))
)

(defun flycheck-set-next-checkers-function (checker func)
"Set the specified FUNC to retrieve next checkers for CHECKER."
(setf (flycheck-checker-get checker 'next-checkers-function) func))

(defun flycheck-get-next-checkers (checker)
"Return the immediate next checkers of CHECKER.

This is a list of checker symbols. The error levels of the
`:next-checker' property are ignored."
(mapcar #'flycheck--get-next-checker-symbol
(flycheck-checker-get checker 'next-checkers)))
(flycheck-next-checkers checker)))

(defun flycheck-all-next-checkers (checker)
"Return all checkers that may follow CHECKER.
Expand Down Expand Up @@ -3012,7 +3024,7 @@ nil otherwise."
(defun flycheck-get-next-checker-for-buffer (checker)
"Get the checker to run after CHECKER for the current buffer."
(let ((next (seq-find #'flycheck-may-use-next-checker
(flycheck-checker-get checker 'next-checkers))))
(flycheck-next-checkers checker))))
(when next
(if (symbolp next) next (cdr next)))))

Expand Down

0 comments on commit 0d250c9

Please sign in to comment.