1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-07 16:10:46 -08:00

Mark Flymake regions more accurately in 'lua-ts-mode'

* lisp/progmodes/lua-ts-mode.el (lua-ts-flymake-luacheck): Use
the end position provided by Luacheck rather than relying on
'thing-at-point' to guess where the end should be.  (Bug#70167)
This commit is contained in:
john muhl 2024-03-13 08:35:08 -05:00 committed by Eli Zaretskii
parent 71f8b2c324
commit d5d61618c8

View file

@ -35,7 +35,6 @@
(require 'treesit)
(eval-when-compile
(require 'cl-lib)
(require 'rx))
(declare-function treesit-induce-sparse-tree "treesit.c")
@ -544,32 +543,32 @@ Calls REPORT-FN directly."
(eq proc lua-ts--flymake-process))
(with-current-buffer (process-buffer proc)
(goto-char (point-min))
(cl-loop
while (search-forward-regexp
(rx (seq bol
(0+ alnum) ":"
(group (1+ digit)) ":"
(group (1+ digit)) "-"
(group (1+ digit)) ": "
(group (0+ nonl))
eol))
nil t)
for (beg . end) = (flymake-diag-region
source
(string-to-number (match-string 1))
(string-to-number (match-string 2)))
for msg = (match-string 4)
for type = (if (string-match "^(W" msg)
:warning
:error)
when (and beg end)
collect (flymake-make-diagnostic source
beg
end
type
msg)
into diags
finally (funcall report-fn diags)))
(let (diags)
(while (search-forward-regexp
(rx bol (0+ alnum) ":"
(group (1+ digit)) ":"
(group (1+ digit)) "-"
(group (1+ digit)) ": "
(group (0+ nonl)) eol)
nil t)
(let* ((beg
(car (flymake-diag-region
source
(string-to-number (match-string 1))
(string-to-number (match-string 2)))))
(end
(cdr (flymake-diag-region
source
(string-to-number (match-string 1))
(string-to-number (match-string 3)))))
(msg (match-string 4))
(type (if (string-prefix-p "(W" msg)
:warning
:error)))
(push (flymake-make-diagnostic
source beg end type msg)
diags)))
(funcall report-fn diags)))
(flymake-log :warning "Canceling obsolete check %s" proc))
(kill-buffer (process-buffer proc)))))))
(process-send-region lua-ts--flymake-process (point-min) (point-max))