mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 04:10:54 -08:00
Fix Flymake's user-visible accessors of diagnostic positions
Diagnostics are supported by overlays, and they can legitimately move around. So flymake-diagnostic-beg and flymake-diagnostic-end must look up the overlay positions, not the immutable slots of the flymake--diag structure, which become stale. * lisp/progmodes/flymake.el (version): Bump to 1.0.8. (flymake-diagnostic-beg, flymake-diagnostic-end): Use diag's overlay. (flymake-show-diagnostic): Use flymake-diagnostic-end, flymake-diagnostic-beg.
This commit is contained in:
parent
22d99801ed
commit
5b48dab412
1 changed files with 11 additions and 5 deletions
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
;; Author: Pavel Kobyakov <pk_at_work@yahoo.com>
|
||||
;; Maintainer: João Távora <joaotavora@gmail.com>
|
||||
;; Version: 1.0.7
|
||||
;; Version: 1.0.8
|
||||
;; Package-Requires: ((emacs "26.1"))
|
||||
;; Keywords: c languages tools
|
||||
|
||||
|
|
@ -344,11 +344,17 @@ diagnostics at BEG."
|
|||
(flymake--diag-accessor flymake-diagnostic-buffer flymake--diag-buffer buffer)
|
||||
(flymake--diag-accessor flymake-diagnostic-text flymake--diag-text text)
|
||||
(flymake--diag-accessor flymake-diagnostic-type flymake--diag-type type)
|
||||
(flymake--diag-accessor flymake-diagnostic-beg flymake--diag-beg beg)
|
||||
(flymake--diag-accessor flymake-diagnostic-end flymake--diag-end end)
|
||||
(flymake--diag-accessor flymake-diagnostic-backend flymake--diag-backend backend)
|
||||
(flymake--diag-accessor flymake-diagnostic-data flymake--diag-data backend)
|
||||
|
||||
(defun flymake-diagnostic-beg (diag)
|
||||
"Get Flymake diagnostic DIAG's start position."
|
||||
(overlay-start (flymake--diag-overlay diag)))
|
||||
|
||||
(defun flymake-diagnostic-end (diag)
|
||||
"Get Flymake diagnostic DIAG's end position."
|
||||
(overlay-end (flymake--diag-overlay diag)))
|
||||
|
||||
(cl-defun flymake--overlays (&key beg end filter compare key)
|
||||
"Get flymake-related overlays.
|
||||
If BEG is non-nil and END is nil, consider only `overlays-at'
|
||||
|
|
@ -1294,8 +1300,8 @@ default) no filter is applied."
|
|||
(with-selected-window
|
||||
(display-buffer (current-buffer) other-window)
|
||||
(goto-char (flymake--diag-beg diag))
|
||||
(pulse-momentary-highlight-region (flymake--diag-beg diag)
|
||||
(flymake--diag-end diag)
|
||||
(pulse-momentary-highlight-region (flymake-diagnostic-beg diag)
|
||||
(flymake-diagnostic-end diag)
|
||||
'highlight))
|
||||
(current-buffer))))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue