diff options
Diffstat (limited to 'lisp/progmodes/flymake.el')
-rw-r--r-- | lisp/progmodes/flymake.el | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 19dac81fe6d..0d200f01b34 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -342,7 +342,7 @@ region is invalid." (let* ((beg (fallback-bol)) (end (fallback-eol beg))) (cons beg end))))))) - (error (flymake-error "Invalid region line=%s col=%s" line col)))) + (error (flymake-log :warning "Invalid region line=%s col=%s" line col)))) (defvar flymake-diagnostic-functions nil "Special hook of Flymake backends that check a buffer. @@ -522,11 +522,12 @@ associated `flymake-category' return DEFAULT." (flymake--fringe-overlay-spec (overlay-get ov 'bitmap))) (default-maybe 'help-echo - (lambda (_window _ov pos) - (mapconcat - #'flymake--diag-text - (flymake-diagnostics pos) - "\n"))) + (lambda (window _ov pos) + (with-selected-window window + (mapconcat + #'flymake--diag-text + (flymake-diagnostics pos) + "\n")))) (default-maybe 'severity (warning-numeric-level :error)) (default-maybe 'priority (+ 100 (overlay-get ov 'severity)))) ;; Some properties can't be overridden. @@ -603,8 +604,8 @@ not expected." (null expected-token)) ;; should never happen (flymake-error "Unexpected report from stopped backend %s" backend)) - ((and (not (eq expected-token token)) - (not force)) + ((not (or (eq expected-token token) + force)) (flymake-error "Obsolete report from backend %s with explanation %s" backend explanation)) ((eq :panic report-action) @@ -744,8 +745,11 @@ Interactively, with a prefix arg, FORCE is t." () (remove-hook 'post-command-hook #'start-post-command nil) - (with-current-buffer buffer - (flymake-start (remove 'post-command deferred) force))) + ;; The buffer may have disappeared already, e.g. because of + ;; code like `(with-temp-buffer (python-mode) ...)'. + (when (buffer-live-p buffer) + (with-current-buffer buffer + (flymake-start (remove 'post-command deferred) force)))) (start-on-display () (remove-hook 'window-configuration-change-hook #'start-on-display @@ -948,7 +952,7 @@ applied." (message "%s" (funcall (overlay-get target 'help-echo) - nil nil (point))))) + (selected-window) target (point))))) (interactive (user-error "No more Flymake errors%s" (if filter |