branch: externals/flymake-proselint commit 090a040c9578d64759d8ad6c71e6cb34da9d6776 Author: Manuel Uberti <manuel.ube...@inventati.org> Commit: Manuel Uberti <manuel.ube...@inventati.org>
Add flymake-proselint-make-sentinel * flymake-proselint.el (flymake-proselint-make-sentinel): Add it and use it. --- flymake-proselint.el | 48 +++++++++++++++++++++++------------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/flymake-proselint.el b/flymake-proselint.el index 0e944a6f8c..14c782385a 100644 --- a/flymake-proselint.el +++ b/flymake-proselint.el @@ -147,21 +147,21 @@ The following %-sequences are replaced: (defconst flymake-proselint--custom-type `(set :greedy t - ,@(mapcar - (lambda (opt) - ;; TODO: Add a :tag - `(const ,opt)) - flymake-proselint--options)) + ,@(mapcar + (lambda (opt) + ;; TODO: Add a :tag + `(const ,opt)) + flymake-proselint--options)) "Custom option type for proselint configurations.") (defun flymake-proselint-safe-option-p (val) "Check if VAL is a safe (and valid) local value." (and (listp val) (catch 'fail - (dolist (elem val) - (unless (memq elem flymake-proselint--options) - (throw 'fail nil))) - t))) + (dolist (elem val) + (unless (memq elem flymake-proselint--options) + (throw 'fail nil))) + t))) (defcustom flymake-proselint-max-errors 1000 "After how many errors should Proselint give up? @@ -257,9 +257,9 @@ Flymake diagnostic objects." (plist-get err :start) (plist-get err :end) (pcase (plist-get err :severity) - ("warning" :warning) - ("suggestion" :note) - (_ :error)) + ("warning" :warning) + ("suggestion" :note) + (_ :error)) (format-spec flymake-proselint-message-format `((?m . ,(plist-get err :message)) @@ -283,14 +283,14 @@ Flymake diagnostic objects." (defvar-local flymake-proselint--flymake-proc nil) -(defun flymake-proselint-sentinel (proc _event) - "Sentinel on PROC for handling Proselint response. -A successfully parsed message is passed onto the function -`flymake-proselint-sentinel-1' for further handling." - (pcase (process-status proc) - ('exit - (let ((report-fn (process-get proc 'report-fn)) - (source (process-get proc 'source))) +(defun flymake-proselint-make-sentinel (source report-fn) + "Create a sentinel on the buffer SOURCE that will call REPORT-FN." + (lambda (proc _even) + "Sentinel on PROC for handling Proselint response. + A successfully parsed message is passed onto the function + `flymake-proselint-sentinel-1' for further handling." + (pcase (process-status proc) + ('exit (unwind-protect (with-current-buffer (process-buffer proc) (goto-char (point-min)) @@ -313,8 +313,8 @@ A successfully parsed message is passed onto the function (flymake-log :error "Invalid response: %S" err)))))) (with-current-buffer source (setq flymake-proselint--flymake-proc nil)) - (kill-buffer (process-buffer proc))))) - ('signal (kill-buffer (process-buffer proc))))) + (kill-buffer (process-buffer proc)))) + ('signal (kill-buffer (process-buffer proc)))))) (defun flymake-proselint-backend (report-fn &rest _args) "Flymake backend for Proselint. @@ -333,9 +333,7 @@ node (flymake) Backend functions for more details." (if-let* ((conf (flymake-proselint-generate-configuration))) (list flymake-proselint-executable "--config" conf "--json" "-") (list flymake-proselint-executable "--json" "-")) - :sentinel #'flymake-proselint-sentinel))) - (process-put proc 'source (current-buffer)) - (process-put proc 'report-fn report-fn) + :sentinel (flymake-proselint-make-sentinel (current-buffer) report-fn)))) (setq flymake-proselint--flymake-proc proc) (save-restriction (widen)