branch: elpa/flymake-collection
commit b8f9c9ba0e8c48e7226a7b5424dc683d5f16bdc8
Author: Mohsin Kaleem <[email protected]>
Commit: Mohsin Kaleem <[email protected]>
(flymake-rest): Replace fmqd- with flymake-rest-
And also add global variables for later lexically bound ones in
flymake-quick-rest-define. This should appease the venerable byte
compiler.
---
checkers/flymake-rest-eslint.el | 6 ++---
checkers/flymake-rest-jsonlint.el | 2 +-
checkers/flymake-rest-mypy.el | 2 +-
checkers/flymake-rest-proselint.el | 6 ++---
checkers/flymake-rest-pycodestyle.el | 2 +-
checkers/flymake-rest-pylint.el | 6 ++---
checkers/flymake-rest-shellcheck.el | 6 ++---
flymake-rest-define.el | 48 +++++++++++++++++++++++-------------
flymake-rest-parse-enumerate.el | 2 +-
flymake-rest-parse-rx.el | 12 ++++-----
10 files changed, 53 insertions(+), 39 deletions(-)
diff --git a/checkers/flymake-rest-eslint.el b/checkers/flymake-rest-eslint.el
index 12eeb58c78..a7dd3c34b6 100644
--- a/checkers/flymake-rest-eslint.el
+++ b/checkers/flymake-rest-eslint.el
@@ -54,9 +54,9 @@ See URL `https://eslint.org/'."
(buffer-substring-no-properties
(point-min) (point-max)))))
(let-alist it
- (let ((loc (cons (car (flymake-diag-region fmqd-source .line .column))
- (cdr (flymake-diag-region fmqd-source .endLine
.endColumn)))))
- (list fmqd-source
+ (let ((loc (cons (car (flymake-diag-region flymake-rest-source .line
.column))
+ (cdr (flymake-diag-region flymake-rest-source .endLine
.endColumn)))))
+ (list flymake-rest-source
(car loc)
(cdr loc)
(pcase .severity
diff --git a/checkers/flymake-rest-jsonlint.el
b/checkers/flymake-rest-jsonlint.el
index 7bba61fd7c..113450b669 100644
--- a/checkers/flymake-rest-jsonlint.el
+++ b/checkers/flymake-rest-jsonlint.el
@@ -39,7 +39,7 @@ See URL `https://github.com/zaach/jsonlint'."
:pre-check (unless jsonlint-exec
(error "Cannot find jsonlint executable"))
:write-type 'file
- :command (list jsonlint-exec "-c" "-q" fmqd-temp-file)
+ :command (list jsonlint-exec "-c" "-q" flymake-rest-temp-file)
:error-parser
(flymake-rest-parse-rx
((error bol (file-name) ": line " line ", col " column ", " (message)
eol))))
diff --git a/checkers/flymake-rest-mypy.el b/checkers/flymake-rest-mypy.el
index 7131b20523..212be607f1 100644
--- a/checkers/flymake-rest-mypy.el
+++ b/checkers/flymake-rest-mypy.el
@@ -46,7 +46,7 @@ See URL `http://mypy-lang.org/'."
"--no-color-output"
"--show-absolute-path"
"--show-error-codes"
- fmqd-temp-file)
+ flymake-rest-temp-file)
:error-parser
(flymake-rest-parse-rx
((error bol (file-name) ":" line ":" column ": error: " (message) eol)
diff --git a/checkers/flymake-rest-proselint.el
b/checkers/flymake-rest-proselint.el
index c5f4f771f5..dacfc7f886 100644
--- a/checkers/flymake-rest-proselint.el
+++ b/checkers/flymake-rest-proselint.el
@@ -49,9 +49,9 @@ See URL `http://proselint.com/'."
(buffer-substring-no-properties
(point-min) (point-max))))))
(let-alist it
- ;; (cons (car (flymake-diag-region fmqd-source .line .column))
- ;; (cdr (flymake-diag-region fmqd-source .endLine .endColumn)))
- (list fmqd-source
+ ;; (cons (car (flymake-diag-region flymake-rest-source .line .column))
+ ;; (cdr (flymake-diag-region flymake-rest-source .endLine
.endColumn)))
+ (list flymake-rest-source
.start
.end
(pcase .severity
diff --git a/checkers/flymake-rest-pycodestyle.el
b/checkers/flymake-rest-pycodestyle.el
index 972d4a4643..34854ae80c 100644
--- a/checkers/flymake-rest-pycodestyle.el
+++ b/checkers/flymake-rest-pycodestyle.el
@@ -38,7 +38,7 @@
(error "Cannot find pycodestyle executable"))
:write-type 'file
:source-inplace t
- :command (list pycodestyle-exec fmqd-temp-file)
+ :command (list pycodestyle-exec flymake-rest-temp-file)
:error-parser
(flymake-rest-parse-rx
((error bol (file-name) ":" line ":" column ": " (id (or "E" "W")
(one-or-more digit)) " " (message) eol))))
diff --git a/checkers/flymake-rest-pylint.el b/checkers/flymake-rest-pylint.el
index 7f291e2a6a..2413fe80c9 100644
--- a/checkers/flymake-rest-pylint.el
+++ b/checkers/flymake-rest-pylint.el
@@ -46,7 +46,7 @@
"-m" "pylint"
"--reports=n"
"--output-format=json"
- fmqd-temp-file)
+ flymake-rest-temp-file)
:error-parser
(flymake-rest-parse-enumerate
(car
@@ -54,8 +54,8 @@
(buffer-substring-no-properties
(point-min) (point-max))))
(let-alist it
- (let ((loc (flymake-diag-region fmqd-source .line .column)))
- (list fmqd-source
+ (let ((loc (flymake-diag-region flymake-rest-source .line .column)))
+ (list flymake-rest-source
(car loc)
(cdr loc)
(pcase .type
diff --git a/checkers/flymake-rest-shellcheck.el
b/checkers/flymake-rest-shellcheck.el
index 7bb2cf6c7d..3e1d014706 100644
--- a/checkers/flymake-rest-shellcheck.el
+++ b/checkers/flymake-rest-shellcheck.el
@@ -52,9 +52,9 @@ See URL `https://github.com/koalaman/shellcheck/'."
(buffer-substring-no-properties
(point-min) (point-max))))
(let-alist it
- (let ((loc (cons (car (flymake-diag-region fmqd-source .line .column))
- (cdr (flymake-diag-region fmqd-source .endLine
.endColumn)))))
- (list fmqd-source
+ (let ((loc (cons (car (flymake-diag-region flymake-rest-source .line
.column))
+ (cdr (flymake-diag-region flymake-rest-source .endLine
.endColumn)))))
+ (list flymake-rest-source
(car loc)
(cdr loc)
(pcase .level
diff --git a/flymake-rest-define.el b/flymake-rest-define.el
index 3f6d2ddc01..c59b6f77ea 100644
--- a/flymake-rest-define.el
+++ b/flymake-rest-define.el
@@ -33,7 +33,27 @@
(require 'flymake)
;;;###autoload
-(defvar-local flymake-rest-define--procs nil)
+(defvar-local flymake-rest-define--procs nil
+ "The local plist of checker processes running in the current buffer.
+When a checker process is begun its pushed into this plist and when its
+finished its removed and killed. In the very often circumstance where a
+new check is begun while an old check is still pending, the old check is
+killed and replaced with the new check.")
+
+(defvar flymake-rest-context nil
+ "An empty variable lexically bound into a checker.
+You can modify this at will within the checker, using it for
+caching or memoization or whatever else you need.")
+
+(defvar flymake-rest-source nil
+ "The lexically bound source buffer being checked.")
+
+(defvar flymake-rest-temp-file nil
+ "The path to the temporary file containing a copy of `flymake-rest-source'.
+This is only available when specifying :write-type 'file.")
+
+(defvar flymake-rest-temp-dir nil
+ "The dirname of `flymake-rest-temp-file'.")
(defmacro flymake-rest-define (name &optional docstring &rest defs)
"Quickly define a backend for use with Flymake.
@@ -46,16 +66,10 @@ in DEFS is :command and :error-parser.
Available Variables
-fmqd-source, fmqd-temp-file, fmdq-temp-dir, fmqd-context.
+flymake-rest-source, flymake-rest-temp-file, fmdq-temp-dir,
flymake-rest-context.
Within the body of :error-parser and :command, several macro specific variables
-are made available. This includes (1) fmqd-source, (2) fmqd-temp-file,
-(3) fmqd-temp-dir, (4) fmqd-context.
-
-1: The source buffer that's being checked by the checker.
-2: The path to the temporary file that was created when using :write-type file.
-3: The dirname of fmqd-temp-file when using :write-type file.
-4: A general purpose list variable that can be used however the developer sees
- fit. This is useful for example in `flymake-rest-parse-enumerate'.
+are made available. This includes (1) `flymake-rest-source',
+(2) `flymake-rest-temp-file', (3) `flymake-rest-temp-dir', (4)
`flymake-rest-context'.
Body Definitions
@@ -69,12 +83,12 @@ suffix the messages for each diagnostic.
:write-type specifies how the process for flymake should recieve the input.
It should be one of 'pipe or 'file (defaulting to 'pipe). When set to file
a temporary file will be created copying the contents of the `current-buffer'.
-The variable fmqd-temp-file and fmqd-temp-dir will be bound in the body
+The variable flymake-rest-temp-file and flymake-rest-temp-dir will be bound in
the body
of the rest of the keywords that provide access to the temp-file. When set
to pipe after the process has been started all of the current buffers input
will be passed to the process through standard-input.
-:source-inplace is a boolean that sets fmqd-temp-dir to the current working
+:source-inplace is a boolean that sets flymake-rest-temp-dir to the current
working
directory. By default this is nil and the temp-file used for :write-type 'file
will be set to a folder in the systems temporary directory.
@@ -105,12 +119,12 @@ diagnostics to parse this form should evaluate to nil."
(error "Missing flymake backend definition `%s'" elem)))
(let* ((write-type (or (eval (plist-get defs :write-type)) 'pipe))
(source-inplace (plist-get defs :source-inplace))
- (temp-dir-symb (intern "fmqd-temp-dir"))
- (temp-file-symb (intern "fmqd-temp-file"))
- (err-symb (intern "fmqd-err"))
+ (temp-dir-symb (intern "flymake-rest-temp-dir"))
+ (temp-file-symb (intern "flymake-rest-temp-file"))
+ (err-symb (intern "flymake-rest-err"))
(diags-symb (intern "diags"))
(proc-symb (intern "proc"))
- (source-symb (intern "fmqd-source"))
+ (source-symb (intern "flymake-rest-source"))
(current-diags-symb (intern "diag"))
(cleanup-form (when (eq write-type 'file)
(if source-inplace
@@ -124,7 +138,7 @@ diagnostics to parse this form should evaluate to nil."
`(defun ,name (report-fn &rest _args)
,docstring
(let* ((,source-symb (current-buffer))
- (fmqd-context nil)
+ (flymake-rest-context nil)
,@(when (eq write-type 'file)
`((,temp-dir-symb
,@(let ((forms (append (when source-inplace
diff --git a/flymake-rest-parse-enumerate.el b/flymake-rest-parse-enumerate.el
index 9581428c9c..6f7f0657df 100644
--- a/flymake-rest-parse-enumerate.el
+++ b/flymake-rest-parse-enumerate.el
@@ -38,7 +38,7 @@ The value of the current entry from GEN in BODY will be set
to the variable
`it'. BODY should evaluate to a form that can be passed to
`flymake-make-diagnostic'."
(declare (indent 1))
- (let ((context-var (intern "fmqd-context")))
+ (let ((context-var (intern "flymake-rest-context")))
`(progn
(unless (alist-get 'enumerated ,context-var)
(push (cons 'entries ,gen) ,context-var)
diff --git a/flymake-rest-parse-rx.el b/flymake-rest-parse-rx.el
index aabc1e49d7..17e476b735 100644
--- a/flymake-rest-parse-rx.el
+++ b/flymake-rest-parse-rx.el
@@ -105,15 +105,15 @@ For an example of this macro in action, see
`flymake-rest-pycodestyle'."
;; are no-more diagnostics to be parsed, we wrap it in a loop that exits
;; the moment we find a match, but otherwise keeps moving through
diagnostics
;; until there actually aren't any more to match.
- `(let (res
- file-name line column message id end-line end-column severity-ix)
+ `(let (res ; file-name
+ line column message id end-line end-column severity-ix)
(while (and (not res)
(search-forward-regexp ,combined-regex nil t))
(setq
res
(save-match-data
(save-excursion
- (setq file-name (match-string 1)
+ (setq ; file-name (match-string 1)
line (match-string 2)
column (match-string 3)
message (match-string 4)
@@ -133,18 +133,18 @@ For an example of this macro in action, see
`flymake-rest-pycodestyle'."
(symbol-name it)))
nil))
(t
- (let ((loc (flymake-diag-region fmqd-source
+ (let ((loc (flymake-diag-region flymake-rest-source
(string-to-number line)
(when column
(string-to-number column))))
(loc-end (when end-line
- (flymake-diag-region fmqd-source
+ (flymake-diag-region flymake-rest-source
(string-to-number
end-line)
(when end-column
(string-to-number
end-column))))))
(when loc-end
(setcdr loc (cdr loc-end)))
- (list fmqd-source
+ (list flymake-rest-source
(car loc)
(cdr loc)
(nth severity-ix (quote ,severity-seq))