[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 5b48dab 2/2: Fix Flymake's user-visible accessors o
From: |
João Távora |
Subject: |
[Emacs-diffs] master 5b48dab 2/2: Fix Flymake's user-visible accessors of diagnostic positions |
Date: |
Wed, 3 Jul 2019 19:40:25 -0400 (EDT) |
branch: master
commit 5b48dab412c61980bca63a67a5d548d07e56b404
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>
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.
---
lisp/progmodes/flymake.el | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index d662aaf..e8a4334 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -4,7 +4,7 @@
;; Author: Pavel Kobyakov <address@hidden>
;; Maintainer: João Távora <address@hidden>
-;; 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))))