diff options
| author | João Távora | 2018-06-05 14:25:47 +0100 |
|---|---|---|
| committer | João Távora | 2018-06-05 15:18:04 +0100 |
| commit | fb759a75007d38a8aea6e8c1a22bbc004453a73f (patch) | |
| tree | ec0493fac44a4fd751c36eddc234ff043095ee65 | |
| parent | bd4f22b6289d51762db1365d8d05de529ec77aeb (diff) | |
| download | emacs-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.el | 13 |
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. |
| 234 | TYPE is a key to `flymake-diagnostic-types-alist' and TEXT is a | 235 | TYPE is a key to `flymake-diagnostic-types-alist' and TEXT is a |
| 235 | description of the problem detected in this region." | 236 | description of the problem detected in this region. DATA is any |
| 236 | (flymake--diag-make :buffer buffer :beg beg :end end :type type :text text)) | 237 | object that the caller wishes to attach to the created diagnostic |
| 238 | for 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. |