From 1bcdbf38bd914653fdb04bb71b9c468f71a8eb95 Mon Sep 17 00:00:00 2001 From: Sebastian Ullrich Date: Wed, 1 Feb 2017 15:39:00 +0100 Subject: [PATCH] feat(emacs/lean-flycheck): Next Error: show all errors at current or next position --- src/emacs/lean-flycheck.el | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/emacs/lean-flycheck.el b/src/emacs/lean-flycheck.el index 9f7e8d992f..b5cf8f6565 100644 --- a/src/emacs/lean-flycheck.el +++ b/src/emacs/lean-flycheck.el @@ -117,19 +117,15 @@ (defun lean-next-error--handler () (when (lean-info-buffer-active lean-next-error-buffer-name) - (let* ((errors (sort (flycheck-overlay-errors-in (line-beginning-position) (line-end-position)) - #'flycheck-error-<))) - - ;; prefer error of current position, if any - (-if-let (e (get-char-property (point) 'flycheck-error)) - (setq errors (list e))) - - ;; fall back to next error - (if (null errors) - (-if-let* ((pos (flycheck-next-error-pos 1)) - (e (get-char-property pos 'flycheck-error))) - (setq errors (list e)))) - + (let ((errors (or + ;; prefer error of current position, if any + (flycheck-overlay-errors-at (point)) + ;; try errors in current line next + (sort (flycheck-overlay-errors-in (line-beginning-position) (line-end-position)) + #'flycheck-error-<) + ;; fall back to next error position + (-if-let* ((pos (flycheck-next-error-pos 1))) + (flycheck-overlay-errors-at pos))))) (lean-with-info-output-to-buffer lean-next-error-buffer-name (dolist (e errors) (princ (format "%d:%d: " (flycheck-error-line e) (flycheck-error-column e)))