From: João Távora Date: Tue, 5 Jun 2018 13:25:47 +0000 (+0100) Subject: Let Flymake backends attach arbitrary data to diagnostics X-Git-Tag: emacs-27.0.90~4929 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=fb759a75007d38a8aea6e8c1a22bbc004453a73f;p=emacs.git 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. --- 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." (cl-defstruct (flymake--diag (:constructor flymake--diag-make)) - buffer beg end type text backend) + buffer beg end type text backend data) ;;;###autoload (defun flymake-make-diagnostic (buffer beg end type - text) + text + &optional data) "Make a Flymake diagnostic for BUFFER's region from BEG to END. TYPE is a key to `flymake-diagnostic-types-alist' and TEXT is a -description of the problem detected in this region." - (flymake--diag-make :buffer buffer :beg beg :end end :type type :text text)) +description of the problem detected in this region. DATA is any +object that the caller wishes to attach to the created diagnostic +for later retrieval." + (flymake--diag-make :buffer buffer :beg beg :end end + :type type :text text :data data)) ;;;###autoload (defun flymake-diagnostics (&optional beg end) @@ -257,6 +261,7 @@ diagnostics at BEG." (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) (cl-defun flymake--overlays (&key beg end filter compare key) "Get flymake-related overlays.