GNU bug report logs -
#30423
2018-01-25; [patch] flymake support
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#30423: 2018-01-25; [patch] flymake support
which was filed against the auctex package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 30423 <at> debbugs.gnu.org.
--
30423: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=30423
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Hi Alex,
2018-02-16 17:57 GMT+01:00 Alex Branham <alex.branham <at> gmail.com>:
> Here's a different version of the patch I sent with flymake support in
> its own file. I also removed the lexical-binding from latex.el.
Great! Patch installed, thanks again.
Bye,
Mosè
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
Flymake got a major rewrite in Emacs 26, the attached patch adds support for this in latex.el. Users can enable it by calling adding flymake-mode to LaTeX-mode-hook.
From 0b8eeebd01d0ed25823d4f40a7ab3cff0d150b8f Mon Sep 17 00:00:00 2001
From: Alex Branham <branham <at> utexas.edu>
Date: Sun, 11 Feb 2018 11:54:09 -0600
Subject: [PATCH] Support flymake in Emacs 26+ using chktex
---
latex.el | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 72 insertions(+), 1 deletion(-)
diff --git a/latex.el b/latex.el
index c2d8a4ca..e3792faf 100644
--- a/latex.el
+++ b/latex.el
@@ -1,4 +1,4 @@
-;;; latex.el --- Support for LaTeX documents.
+;;; latex.el --- Support for LaTeX documents. -*- lexical-binding: t; -*-
;; Copyright (C) 1991, 1993-2017 Free Software Foundation, Inc.
@@ -6568,6 +6568,77 @@ function would return non-nil and `(match-string 1)' would return
(1+ any-col)
beg-col))))))))
+;; Flymake
+
+(defvar-local LaTeX--flymake-proc nil)
+
+(defun LaTeX-flymake (report-fn &rest _args)
+ "Setup flymake integration.
+
+REPORT-FN is flymake's callback function."
+ (unless (executable-find "chktex")
+ (error "Cannot find chktex"))
+ (when (process-live-p LaTeX--flymake-proc)
+ (kill-process LaTeX--flymake-proc))
+ (let ((source (current-buffer)))
+ (save-restriction
+ (widen)
+ (setq
+ LaTeX--flymake-proc
+ (make-process
+ :name "LaTeX-flymake" :noquery t :connection-type 'pipe
+ :buffer (generate-new-buffer " *LaTeX-flymake*")
+ :command '("chktex" "--verbosity=0" "--quiet" "--inputfiles")
+ :sentinel
+ (lambda (proc _event)
+ (when (eq 'exit (process-status proc))
+ (unwind-protect
+ (if (with-current-buffer source (eq proc LaTeX--flymake-proc))
+ (with-current-buffer (process-buffer proc)
+ (goto-char (point-min))
+ (cl-loop
+ while (search-forward-regexp
+ (rx line-start "stdin:"
+ ;; line
+ (group-n 1 (one-or-more num))
+ ":"
+ ;; column
+ (group-n 2 (one-or-more num))
+ ":"
+ ;; This is information about the
+ ;; number of the warning, which we
+ ;; probably don't care about:
+ (one-or-more num)
+ ":"
+ ;; Warning message:
+ (group-n 3 (one-or-more not-newline)) line-end)
+ nil t)
+ for msg = (match-string 3)
+ for (beg . end) = (flymake-diag-region
+ source
+ (string-to-number (match-string 1))
+ (string-to-number (match-string 2)))
+ for type = :warning
+ collect (flymake-make-diagnostic source
+ beg
+ end
+ type
+ msg)
+ into diags
+ finally (funcall report-fn diags)))
+ (flymake-log :warning "Canceling obsolete check %s"
+ proc))
+ (kill-buffer (process-buffer proc)))))))
+ (process-send-region LaTeX--flymake-proc (point-min) (point-max))
+ (process-send-eof LaTeX--flymake-proc))))
+
+(defun LaTeX-setup-flymake-backend ()
+ "Setup flymake backend for LaTeX."
+ (add-hook 'flymake-diagnostic-functions 'LaTeX-flymake nil t))
+
+(when (< 25 emacs-major-version)
+ (add-hook 'LaTeX-mode-hook 'LaTeX-setup-flymake-backend))
+
(provide 'latex)
;;; latex.el ends here
--
2.16.1
[0001-Support-flymake-in-Emacs-26-using-chktex.patch (text/x-patch, attachment)]
This bug report was last modified 7 years and 176 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.