diff --git a/flycheck-clj-kondo.el b/flycheck-clj-kondo.el index 2c500b9..e2b10ce 100644 --- a/flycheck-clj-kondo.el +++ b/flycheck-clj-kondo.el @@ -53,11 +53,11 @@ 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. -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" @@ -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 '(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")) (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 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)) (add-to-list 'flycheck-checkers element))))