branch: elpa/flymake-collection
commit fd9928801cf601a221cf45508e254f405d19c819
Author: Mohsin Kaleem <[email protected]>
Commit: Mohsin Kaleem <[email protected]>
Add linter Makefile and fix lint errors
---
Makefile | 31 +++++++++++++++++++++++++++++++
checkers/flymake-rest-awk-gawk.el | 4 ++++
checkers/flymake-rest-clang.el | 4 ++++
checkers/flymake-rest-eslint.el | 4 ++++
checkers/flymake-rest-gcc.el | 4 ++++
checkers/flymake-rest-html-tidy.el | 4 ++++
checkers/flymake-rest-jq.el | 4 ++++
checkers/flymake-rest-jsonlint.el | 4 ++++
checkers/flymake-rest-less.el | 4 ++++
checkers/flymake-rest-lua.el | 4 ++++
checkers/flymake-rest-luacheck.el | 10 +++++++---
checkers/flymake-rest-markdownlint.el | 4 ++++
checkers/flymake-rest-mypy.el | 4 ++++
checkers/flymake-rest-proselint.el | 4 ++++
checkers/flymake-rest-pycodestyle.el | 4 ++++
checkers/flymake-rest-pylint.el | 4 ++++
checkers/flymake-rest-rubocop.el | 4 ++++
checkers/flymake-rest-shellcheck.el | 4 ++++
checkers/flymake-rest-sql-lint.el | 4 ++++
checkers/flymake-rest-sqlint.el | 4 ++++
checkers/flymake-rest-xmllint.el | 4 ++++
checkers/flymake-rest-yamllint.el | 4 ++++
flymake-rest-commands.el | 15 ++++++++++++---
flymake-rest-define.el | 15 +++++++++------
flymake-rest-hook.el | 6 ++++--
flymake-rest.el | 3 ++-
26 files changed, 145 insertions(+), 15 deletions(-)
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000..70201e67d6
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,31 @@
+EMACS ?= emacs
+SRC := *.el checkers/*.el
+
+.PHONY: lint
+lint: compile checkdoc
+
+.PHONY: checkdoc
+checkdoc: ## Check for missing or poorly formatted docstrings
+ @for file in $(SRC); do \
+ echo "[checkdoc] $$file" ;\
+ $(EMACS) -Q --batch \
+ --eval "(or (fboundp 'checkdoc-file) (kill-emacs))" \
+ --eval "(setq sentence-end-double-space nil)" \
+ --eval "(checkdoc-file \"$$file\")" 2>&1 \
+ | grep . && exit 1 || true ;\
+ done
+
+.PHONY: compile
+compile: ## Check for byte-compiler errors
+ @for file in $(SRC); do \
+ echo "[compile] $$file" ;\
+ rm -f "$${file}c" ;\
+ $(EMACS) -Q --batch -L . -f batch-byte-compile $$file 2>&1 \
+ | grep -v "^Wrote" \
+ | grep . && exit 1 || true ;\
+ done
+
+.PHONY: clean
+clean: ## Remove build artifacts
+ @echo "[clean]" *.elc checkers/*.elc
+ @rm -f *.elc checkers/*.elc
diff --git a/checkers/flymake-rest-awk-gawk.el
b/checkers/flymake-rest-awk-gawk.el
index 0f4e3dd77f..f03fb38ee6 100644
--- a/checkers/flymake-rest-awk-gawk.el
+++ b/checkers/flymake-rest-awk-gawk.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for awk using GNU awk's built-in lint checker.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-clang.el b/checkers/flymake-rest-clang.el
index 41c9b34918..fd4f28a79d 100644
--- a/checkers/flymake-rest-clang.el
+++ b/checkers/flymake-rest-clang.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for c using Clang.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-eslint.el b/checkers/flymake-rest-eslint.el
index 7ca7288a65..6da3aacea6 100644
--- a/checkers/flymake-rest-eslint.el
+++ b/checkers/flymake-rest-eslint.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax and style checker for Javascript using eslint.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-gcc.el b/checkers/flymake-rest-gcc.el
index 16502840f4..e56b00fe01 100644
--- a/checkers/flymake-rest-gcc.el
+++ b/checkers/flymake-rest-gcc.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for c using GCC.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-html-tidy.el
b/checkers/flymake-rest-html-tidy.el
index 41ba2c7000..55a4ff6e28 100644
--- a/checkers/flymake-rest-html-tidy.el
+++ b/checkers/flymake-rest-html-tidy.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax and style checker for HTML using Tidy.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-jq.el b/checkers/flymake-rest-jq.el
index 8f0495bd25..729b3f0819 100644
--- a/checkers/flymake-rest-jq.el
+++ b/checkers/flymake-rest-jq.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for JSON using jq.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-jsonlint.el
b/checkers/flymake-rest-jsonlint.el
index a13a8e86dc..a66e201929 100644
--- a/checkers/flymake-rest-jsonlint.el
+++ b/checkers/flymake-rest-jsonlint.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for JSON using jsonlint.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-less.el b/checkers/flymake-rest-less.el
index 0b3a2edc29..b89331788b 100644
--- a/checkers/flymake-rest-less.el
+++ b/checkers/flymake-rest-less.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for LESS using the less compiler.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-lua.el b/checkers/flymake-rest-lua.el
index 712c60bf54..3731b4554a 100644
--- a/checkers/flymake-rest-lua.el
+++ b/checkers/flymake-rest-lua.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for lua using the lua compiler.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-luacheck.el
b/checkers/flymake-rest-luacheck.el
index d34516885f..83127ae962 100644
--- a/checkers/flymake-rest-luacheck.el
+++ b/checkers/flymake-rest-luacheck.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for lua using luacheck.
+
;;; Code:
(require 'flymake)
@@ -39,7 +43,7 @@ non-nil, pass the standards via one or more `--std' options."
(string :tag "Standard name")))
:group 'flymake-rest)
-(defcustom flymake-luacheck-rc nil ; ".luacheckrc"
+(defcustom flymake-rest-luacheck-rc nil ; ".luacheckrc"
"Optional configuration file for luacheck."
:type '(choice (const :tag "Default" nil)
(file :tag "Config file"))
@@ -62,8 +66,8 @@ See URL `https://github.com/mpeterv/luacheck'."
,@(when flymake-rest-luacheck-standards
(list "--std"
(mapconcat #'identity flymake-rest-luacheck-standards
"+")))
- ,@(when flymake-luacheck-rc
- (list "--config" flymake-luacheck-rc))
+ ,@(when flymake-rest-luacheck-rc
+ (list "--config" flymake-rest-luacheck-rc))
,@(when-let ((file (buffer-file-name flymake-rest-source)))
(list "--filename" file))
"-")
diff --git a/checkers/flymake-rest-markdownlint.el
b/checkers/flymake-rest-markdownlint.el
index f8d14d3280..200ea6bd8e 100644
--- a/checkers/flymake-rest-markdownlint.el
+++ b/checkers/flymake-rest-markdownlint.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for markdown using markdownlint.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-mypy.el b/checkers/flymake-rest-mypy.el
index 0f3b451e54..6b2ef64089 100644
--- a/checkers/flymake-rest-mypy.el
+++ b/checkers/flymake-rest-mypy.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for python using mypy.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-proselint.el
b/checkers/flymake-rest-proselint.el
index 6443315ff6..399ebf6b37 100644
--- a/checkers/flymake-rest-proselint.el
+++ b/checkers/flymake-rest-proselint.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for prose using proselint.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-pycodestyle.el
b/checkers/flymake-rest-pycodestyle.el
index 5531efc900..fb785297c2 100644
--- a/checkers/flymake-rest-pycodestyle.el
+++ b/checkers/flymake-rest-pycodestyle.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for python using pycodestyle.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-pylint.el b/checkers/flymake-rest-pylint.el
index d967591b30..65a3015c1f 100644
--- a/checkers/flymake-rest-pylint.el
+++ b/checkers/flymake-rest-pylint.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for python using pylint.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-rubocop.el b/checkers/flymake-rest-rubocop.el
index be91eafd50..1cbb4fc4e0 100644
--- a/checkers/flymake-rest-rubocop.el
+++ b/checkers/flymake-rest-rubocop.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for ruby using rubocop.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-shellcheck.el
b/checkers/flymake-rest-shellcheck.el
index f71ad410a1..e8d626f03b 100644
--- a/checkers/flymake-rest-shellcheck.el
+++ b/checkers/flymake-rest-shellcheck.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for POSIX shell (and bash) using shellcheck.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-sql-lint.el
b/checkers/flymake-rest-sql-lint.el
index fa47fc85c7..0de3044351 100644
--- a/checkers/flymake-rest-sql-lint.el
+++ b/checkers/flymake-rest-sql-lint.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for sql using sql-lint.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-sqlint.el b/checkers/flymake-rest-sqlint.el
index 8be965d594..1848eae120 100644
--- a/checkers/flymake-rest-sqlint.el
+++ b/checkers/flymake-rest-sqlint.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for sql using sqlint.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-xmllint.el b/checkers/flymake-rest-xmllint.el
index 6d7ca9e7c7..d4356dbb92 100644
--- a/checkers/flymake-rest-xmllint.el
+++ b/checkers/flymake-rest-xmllint.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for XML using xmllint.
+
;;; Code:
(require 'flymake)
diff --git a/checkers/flymake-rest-yamllint.el
b/checkers/flymake-rest-yamllint.el
index 01e545472c..7a2d83e8e0 100644
--- a/checkers/flymake-rest-yamllint.el
+++ b/checkers/flymake-rest-yamllint.el
@@ -20,6 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; `flymake' syntax checker for yaml using yamllint.
+
;;; Code:
(require 'flymake)
diff --git a/flymake-rest-commands.el b/flymake-rest-commands.el
index 3d0f5fb377..fd9e8965e8 100644
--- a/flymake-rest-commands.el
+++ b/flymake-rest-commands.el
@@ -20,6 +20,11 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
+;;; Commentary:
+
+;; This file exposes a bunch of helper commands for using and configuring
flymake
+;; interactively.
+
;;; Code:
(require 'flymake)
@@ -49,6 +54,8 @@ they aren't associated with the current mode."
:test (lambda (a b) (string-equal (car a) (car b))))))
(defun flymake-rest-change-checker--read-checkers (&optional all-modes)
+ "Read one or more flymake checkers.
+See `flymake-rest-change-checker--cands' for a description of ALL-MODES."
(let* ((cands (flymake-rest-change-checker--cands all-modes))
(group-function (lambda (cand transform)
(if transform
@@ -75,9 +82,11 @@ they aren't associated with the current mode."
;;;###autoload
(defun flymake-rest-change-checker (checkers)
- "Interactively select and enable/disable checker for the current
`major-mode'.
-With ARG select a checker regardless of `major-mode'."
- (interactive (list (flymake-rest-change-checker--read-checkers
current-prefix-arg)))
+ "Interactively enable/disable flymake CHECKERS.
+With `current-prefix-arg' select a checker regardless of `major-mode'."
+ (interactive
+ (list
+ (flymake-rest-change-checker--read-checkers current-prefix-arg)))
(when checkers
(dolist (checker checkers)
(cl-destructuring-bind (_cand _mode checker exists) checker
diff --git a/flymake-rest-define.el b/flymake-rest-define.el
index 35749edc04..c509550085 100644
--- a/flymake-rest-define.el
+++ b/flymake-rest-define.el
@@ -165,7 +165,7 @@ of the `current-buffer'. The variable
flymake-rest-temp-file and
flymake-rest-temp-dir will be bound in the body of NAME and provide
access to this temp-file.
When set to 'pipe, all of the `current-buffer' will be passed to the
-process on its standard-input stream after it has begun.
+process on its standard input stream after it has begun.
SOURCE-INPLACE determines whether to also create a temporary directory
for a temporary file (when using a WRITE-TYPE of 'file) or whether to
@@ -308,7 +308,7 @@ exit status %d\nStderr: %s"
(eval-when-compile
(require 'rx))
-(defconst flymake-rest-parse-rx-constituents
+(defconst flymake-rest-define-parse-rx-constituents
`((file-name ,(lambda (body)
(rx-to-string
`(group-n 1 ,@(or (cdr body)
@@ -345,7 +345,7 @@ turned into a keyword by this macro) and the cdr should be a
sequence of entries that can be interpreted by the `rx' macro.
To simplify matching specific fields in the parsed output several
helper extensions to `rx' have been defined such as file-name or
-line. For a list of these see `flymake-rest-parse-rx-constituents'.
+line. For a list of these see `flymake-rest-define-parse-rx-constituents'.
The only required fields that MUST be parsed are the line number
and message. If these are ommited the matched diagnostic will be
skipped.
@@ -359,7 +359,7 @@ For an example of this macro in action, see
`flymake-rest-pycodestyle'."
(unless (> (length regexps) 0)
(error "Must supply at least one regexp for error, warning or note"))
- (let* ((group-count (length flymake-rest-parse-rx-constituents))
+ (let* ((group-count (length flymake-rest-define-parse-rx-constituents))
(regexps
;; To avoid having to rematch each diagnostic more than once we
append
;; a special extra capture group (greater than all the ones above)
that
@@ -371,7 +371,7 @@ For an example of this macro in action, see
`flymake-rest-pycodestyle'."
collect (cons `(seq ,@regex (group-n ,count ""))
(intern (concat ":" (symbol-name
severity))))))
(combined-regex
- (let ((rx-constituents (append flymake-rest-parse-rx-constituents
+ (let ((rx-constituents (append
flymake-rest-define-parse-rx-constituents
(bound-and-true-p rx-constituents)
nil)))
(rx-to-string `(or ,@(mapcar #'car regexps))
'no-group)))
@@ -467,7 +467,10 @@ output again and again.
The value of the current entry from GENERATOR in ENUMERATE-PARSER will be set
to
the variable `it'. ENUMERATE-PARSER should evaluate to a form that can be
passed
-to `flymake-make-diagnostic'."
+to `flymake-make-diagnostic'.
+
+See `flymake-rest-define' for a description of NAME, DOCSTRING, TITLE, COMMAND,
+WRITE-TYPE, SOURCE-INPLACE, PRE-LET, and PRE-CHECK."
(declare (indent defun) (doc-string 2))
(let ((entries-var 'flymake-rest-entries)
(parsed-var 'flymake-rest-parsed))
diff --git a/flymake-rest-hook.el b/flymake-rest-hook.el
index c52f8b7b03..e3a8bb6901 100644
--- a/flymake-rest-hook.el
+++ b/flymake-rest-hook.el
@@ -20,8 +20,10 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
;; SOFTWARE.
-;;; Commentary
-;; This file implements a way to associate major-modes to flymake checkers.
+;;; Commentary:
+
+;; This file implements a way to associate major-modes with flymake checkers.
+;; This can be used to automatically enable certain checkers on certain modes.
;;; Code:
diff --git a/flymake-rest.el b/flymake-rest.el
index 8c0dc31841..b1b827e171 100644
--- a/flymake-rest.el
+++ b/flymake-rest.el
@@ -6,7 +6,7 @@
;; Created: 15 June 2021
;; Homepage: https://github.com/mohkale/flymake-rest
;; Keywords: language tools
-;; Package-Requires: ((emacs "28.1") (let-alist "1.0") (flymake-rest "1.2.1))
+;; Package-Requires: ((emacs "28.1") (let-alist "1.0") (flymake "1.2.1"))
;; SPDX-License-Identifier: MIT
;; Version: 1.0.0
@@ -68,6 +68,7 @@ like output from OUTPUT into a list and then returns it."
(let (objects
(json-array-type 'list)
(json-false nil))
+ (ignore json-array-type json-false)
(with-temp-buffer
(insert output)
(goto-char (point-min))