From 5a0f906016b53ceccafae661b1c229db99d519da Mon Sep 17 00:00:00 2001 From: Dieter Komendera Date: Thu, 1 Feb 2024 08:27:35 +0100 Subject: [PATCH 1/3] Support clojure-ts-mode #25 --- flycheck-clj-kondo.el | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/flycheck-clj-kondo.el b/flycheck-clj-kondo.el index 2c500b9..ddb9c8b 100644 --- a/flycheck-clj-kondo.el +++ b/flycheck-clj-kondo.el @@ -53,7 +53,7 @@ your file extension doesn't match your major-mode.") (defmacro flycheck-clj-kondo--define-checker - (name lang mode &rest extra-args) + (name lang modes &rest extra-args) "Internal macro to define checker. Argument NAME: the name of the checker. Argument LANG: language string. @@ -74,7 +74,7 @@ Argument EXTRA-ARGS: passes extra args to the checker." ":" line ":" column ": " (0+ not-newline) "warning: " (message) line-end) (info line-start (or "" (file-name)) ":" line ":" column ": " (0+ not-newline) "info: " (message) line-end)) - :modes (,mode) + :modes ,modes :predicate (lambda () (or ;; We are being told to explicitly lint @@ -86,18 +86,20 @@ Argument EXTRA-ARGS: passes extra args to the checker." ;; Else use the mode to infer which language to turn on. (pcase ,lang - ("clj" `(equal 'clojure-mode major-mode)) - ("cljs" `(equal 'clojurescript-mode major-mode)) - ("cljc" `(equal 'clojurec-mode major-mode))))))) + ("clj" `(member major-mode ,,modes)) + ("cljs" `(member major-mode ,,modes)) + ("cljc" `(member major-mode ,,modes))))))) + +;; (macroexpand-1 '(flycheck-clj-kondo--define-checker clj-kondo-clj "clj" clojure-mode "--cache")) (defmacro flycheck-clj-kondo-define-checkers (&rest extra-args) "Defines all clj-kondo checkers. Argument EXTRA-ARGS: passes extra arguments to the checkers." `(progn - (flycheck-clj-kondo--define-checker clj-kondo-clj "clj" clojure-mode ,@extra-args) - (flycheck-clj-kondo--define-checker clj-kondo-cljs "cljs" clojurescript-mode ,@extra-args) - (flycheck-clj-kondo--define-checker clj-kondo-cljc "cljc" clojurec-mode ,@extra-args) - (flycheck-clj-kondo--define-checker clj-kondo-edn "edn" clojure-mode ,@extra-args) + (flycheck-clj-kondo--define-checker clj-kondo-clj "clj" (clojure-mode clojure-ts-mode) ,@extra-args) + (flycheck-clj-kondo--define-checker clj-kondo-cljs "cljs" (clojurescript-mode clojurescritps-ts-mode) ,@extra-args) + (flycheck-clj-kondo--define-checker clj-kondo-cljc "cljc" (clojurec-mode clojurec-ts-mode) ,@extra-args) + (flycheck-clj-kondo--define-checker clj-kondo-edn "edn" (clojure-mode clojure-ts-mode) ,@extra-args) (dolist (element '(clj-kondo-clj clj-kondo-cljs clj-kondo-cljc clj-kondo-edn)) (add-to-list 'flycheck-checkers element)))) From 368bbb026a7346cde10efdfd60abb1637d5d95b7 Mon Sep 17 00:00:00 2001 From: Dieter Komendera Date: Fri, 2 Feb 2024 20:06:24 +0100 Subject: [PATCH 2/3] Update docstring, ensure backwards compatibility --- flycheck-clj-kondo.el | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flycheck-clj-kondo.el b/flycheck-clj-kondo.el index ddb9c8b..0267e8e 100644 --- a/flycheck-clj-kondo.el +++ b/flycheck-clj-kondo.el @@ -57,7 +57,7 @@ "Internal macro to define checker. Argument NAME: the name of the checker. Argument LANG: language string. -Argument MODE: the mode in which this checker is activated. +Argument MODES: a major mode symbol or a list thereof in which this checker is activated. Argument EXTRA-ARGS: passes extra args to the checker." `(flycheck-define-checker ,name "See https://github.com/borkdude/clj-kondo" @@ -86,9 +86,9 @@ Argument EXTRA-ARGS: passes extra args to the checker." ;; Else use the mode to infer which language to turn on. (pcase ,lang - ("clj" `(member major-mode ,,modes)) - ("cljs" `(member major-mode ,,modes)) - ("cljc" `(member major-mode ,,modes))))))) + ("clj" (member major-mode '(clojure-mode clojure-ts-mode))) + ("cljs" (member major-mode '(clojurescript-mode clojurescritps-ts-mode))) + ("cljc" (member major-mode '(clojurec-mode clojurec-ts-mode)))))))) ;; (macroexpand-1 '(flycheck-clj-kondo--define-checker clj-kondo-clj "clj" clojure-mode "--cache")) From 24438befd617ac2e5ae190e9dd2af01d954f237f Mon Sep 17 00:00:00 2001 From: Dieter Komendera Date: Sat, 3 Feb 2024 12:37:52 +0100 Subject: [PATCH 3/3] Fix typo --- flycheck-clj-kondo.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flycheck-clj-kondo.el b/flycheck-clj-kondo.el index 0267e8e..e2b10ce 100644 --- a/flycheck-clj-kondo.el +++ b/flycheck-clj-kondo.el @@ -97,7 +97,7 @@ Argument EXTRA-ARGS: passes extra args to the checker." Argument EXTRA-ARGS: passes extra arguments to the checkers." `(progn (flycheck-clj-kondo--define-checker clj-kondo-clj "clj" (clojure-mode clojure-ts-mode) ,@extra-args) - (flycheck-clj-kondo--define-checker clj-kondo-cljs "cljs" (clojurescript-mode clojurescritps-ts-mode) ,@extra-args) + (flycheck-clj-kondo--define-checker clj-kondo-cljs "cljs" (clojurescript-mode clojurescript-ts-mode) ,@extra-args) (flycheck-clj-kondo--define-checker clj-kondo-cljc "cljc" (clojurec-mode clojurec-ts-mode) ,@extra-args) (flycheck-clj-kondo--define-checker clj-kondo-edn "edn" (clojure-mode clojure-ts-mode) ,@extra-args) (dolist (element '(clj-kondo-clj clj-kondo-cljs clj-kondo-cljc clj-kondo-edn))