aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoão Távora2018-06-05 14:25:47 +0100
committerJoão Távora2018-06-05 15:18:04 +0100
commitfb759a75007d38a8aea6e8c1a22bbc004453a73f (patch)
treeec0493fac44a4fd751c36eddc234ff043095ee65
parentbd4f22b6289d51762db1365d8d05de529ec77aeb (diff)
downloademacs-fb759a75007d38a8aea6e8c1a22bbc004453a73f.tar.gz
emacs-fb759a75007d38a8aea6e8c1a22bbc004453a73f.zip
Let Flymake backends attach arbitrary data to diagnostics
This is easier that setting properties on diagnostics' text. * lisp/progmodes/flymake.el (flymake--diag): Add data slot. (flymake-make-diagnostic): Add DATA arg. (flymake-diagnostic-data): New accessor.
-rw-r--r--lisp/progmodes/flymake.el13
1 files changed, 9 insertions, 4 deletions
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index ee0da45bd91..35d56725445 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -222,18 +222,22 @@ generated it."
222 222
223(cl-defstruct (flymake--diag 223(cl-defstruct (flymake--diag
224 (:constructor flymake--diag-make)) 224 (:constructor flymake--diag-make))
225 buffer beg end type text backend) 225 buffer beg end type text backend data)
226 226
227;;;###autoload 227;;;###autoload
228(defun flymake-make-diagnostic (buffer 228(defun flymake-make-diagnostic (buffer
229 beg 229 beg
230 end 230 end
231 type 231 type
232 text) 232 text
233 &optional data)
233 "Make a Flymake diagnostic for BUFFER's region from BEG to END. 234 "Make a Flymake diagnostic for BUFFER's region from BEG to END.
234TYPE is a key to `flymake-diagnostic-types-alist' and TEXT is a 235TYPE is a key to `flymake-diagnostic-types-alist' and TEXT is a
235description of the problem detected in this region." 236description of the problem detected in this region. DATA is any
236 (flymake--diag-make :buffer buffer :beg beg :end end :type type :text text)) 237object that the caller wishes to attach to the created diagnostic
238for later retrieval."
239 (flymake--diag-make :buffer buffer :beg beg :end end
240 :type type :text text :data data))
237 241
238;;;###autoload 242;;;###autoload
239(defun flymake-diagnostics (&optional beg end) 243(defun flymake-diagnostics (&optional beg end)
@@ -257,6 +261,7 @@ diagnostics at BEG."
257(flymake--diag-accessor flymake-diagnostic-beg flymake--diag-beg beg) 261(flymake--diag-accessor flymake-diagnostic-beg flymake--diag-beg beg)
258(flymake--diag-accessor flymake-diagnostic-end flymake--diag-end end) 262(flymake--diag-accessor flymake-diagnostic-end flymake--diag-end end)
259(flymake--diag-accessor flymake-diagnostic-backend flymake--diag-backend backend) 263(flymake--diag-accessor flymake-diagnostic-backend flymake--diag-backend backend)
264(flymake--diag-accessor flymake-diagnostic-data flymake--diag-data backend)
260 265
261(cl-defun flymake--overlays (&key beg end filter compare key) 266(cl-defun flymake--overlays (&key beg end filter compare key)
262 "Get flymake-related overlays. 267 "Get flymake-related overlays.