Function: lua-ts-flymake-luacheck
lua-ts-flymake-luacheck is a byte-compiled function defined in
lua-ts-mode.el.gz.
Signature
(lua-ts-flymake-luacheck REPORT-FN &rest ARGS)
Documentation
Luacheck backend for Flymake.
Calls REPORT-FN directly.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/lua-ts-mode.el.gz
(defun lua-ts-flymake-luacheck (report-fn &rest _args)
"Luacheck backend for Flymake.
Calls REPORT-FN directly."
(when (process-live-p lua-ts--flymake-process)
(kill-process lua-ts--flymake-process))
(let ((source (current-buffer)))
(save-restriction
(widen)
(setq lua-ts--flymake-process
(make-process
:name "lua-ts-flymake-luacheck"
:noquery t
:connection-type 'pipe
:buffer (generate-new-buffer " *lua-ts-flymake-luacheck*")
:command `(,lua-ts-luacheck-program
"--codes" "--ranges" "--formatter" "plain" "-")
:sentinel
(lambda (proc _event)
(when (eq 'exit (process-status proc))
(unwind-protect
(if (with-current-buffer source
(eq proc lua-ts--flymake-process))
(with-current-buffer (process-buffer proc)
(goto-char (point-min))
(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))
(process-send-eof lua-ts--flymake-process))))