|
| 1 | +;; --------------------------------------------------------- |
| 2 | +;; Clojure Linter - clj-kondo configuration for Continuous Integration |
| 3 | +;; |
| 4 | +;; Essential linter checks during CI workflows |
| 5 | +;; disabling non-essential checks to optimise workflow feedback |
| 6 | +;; --------------------------------------------------------- |
| 7 | + |
| 8 | + |
| 9 | +{;; Ignore code in comment blocks |
| 10 | + :skip-comments true |
| 11 | + |
| 12 | + :linters {:invalid-arity {:level :error |
| 13 | + :skip-args [#_riemann.test/test-stream]} |
| 14 | + :not-a-function {:level :error |
| 15 | + :skip-args [#_user/foo]} |
| 16 | + :private-call {:level :error} |
| 17 | + :inline-def {:level :error} |
| 18 | + :redundant-do {:level :off} |
| 19 | + :redundant-let {:level :warning} |
| 20 | + :cond-else {:level :off} |
| 21 | + :syntax {:level :warning} |
| 22 | + :file {:level :error} |
| 23 | + :missing-test-assertion {:level :warning} |
| 24 | + :conflicting-alias {:level :error} |
| 25 | + :duplicate-map-key {:level :error} |
| 26 | + :duplicate-set-key {:level :error} |
| 27 | + :missing-map-value {:level :error} |
| 28 | + :redefined-var {:level :off} |
| 29 | + :unreachable-code {:level :warning} |
| 30 | + :datalog-syntax {:level :off} |
| 31 | + :unbound-destructuring-default {:level :warning} |
| 32 | + :unused-binding {:level :off |
| 33 | + ;; :exclude-destructured-keys-in-fn-args false |
| 34 | + ;; :exclude-destructured-as false |
| 35 | + ;; :exclude-unused-as true |
| 36 | + } |
| 37 | + |
| 38 | + :unsorted-required-namespaces {:level :off} |
| 39 | + :unused-namespace {:level :off |
| 40 | + ;; don't warn about these namespaces: |
| 41 | + :exclude [#_clj-kondo.impl.var-info-gen]} |
| 42 | + ;; :simple-libspec true |
| 43 | + |
| 44 | + :unresolved-symbol {:level :error |
| 45 | + :exclude [;; ignore globally: |
| 46 | + #_js* |
| 47 | + ;; ignore occurrences of service and event in call to riemann.streams/where: |
| 48 | + #_(riemann.streams/where [service event]) |
| 49 | + ;; ignore all unresolved symbols in one-of: |
| 50 | + #_(clj-kondo.impl.utils/one-of) |
| 51 | + #_(user/defproject) ; ignore project.clj's defproject |
| 52 | + #_(clojure.test/are [thrown? thrown-with-msg?]) |
| 53 | + #_(cljs.test/are [thrown? thrown-with-msg?]) |
| 54 | + #_(clojure.test/is [thrown? thrown-with-msg?]) |
| 55 | + #_(cljs.test/is [thrown? thrown-with-msg?])]} |
| 56 | + :unresolved-var {:level :warning} |
| 57 | + :unresolved-namespace {:level :warning |
| 58 | + :exclude [#_foo.bar]} |
| 59 | + ;; for example: foo.bar is always loaded in a user profile |
| 60 | + |
| 61 | + :misplaced-docstring {:level :warning} |
| 62 | + :not-empty? {:level :off} |
| 63 | + :deprecated-var {:level :off |
| 64 | + #_:exclude |
| 65 | + #_{foo.foo/deprecated-fn |
| 66 | + ;; suppress warnings in the following namespaces |
| 67 | + {:namespaces [foo.bar "bar\\.*"] |
| 68 | + ;; or in these definitions: |
| 69 | + :defs [foo.baz/allowed "foo.baz/ign\\.*"]}}} |
| 70 | + :unused-referred-var {:level :off |
| 71 | + :exclude {#_#_taoensso.timbre [debug]}} |
| 72 | + :unused-private-var {:level :off} |
| 73 | + :duplicate-require {:level :warning} |
| 74 | + :refer {:level :off} |
| 75 | + :refer-all {:level :warning |
| 76 | + :exclude #{}} |
| 77 | + :use {:level :error} |
| 78 | + :missing-else-branch {:level :warning} |
| 79 | + :type-mismatch {:level :error} |
| 80 | + :missing-docstring {:level :warning} |
| 81 | + :consistent-alias {:level :off |
| 82 | + ;; warn when alias for clojure.string is |
| 83 | + ;; different from str |
| 84 | + :aliases {#_clojure.string #_str}} |
| 85 | + :unused-import {:level :off} |
| 86 | + :single-operand-comparison {:level :off} |
| 87 | + :single-logical-operand {:level :off} |
| 88 | + :single-key-in {:level :off} |
| 89 | + :missing-clause-in-try {:level :off} |
| 90 | + :missing-body-in-when {:level :off} |
| 91 | + :hook {:level :error} |
| 92 | + :format {:level :error} |
| 93 | + :shadowed-var {:level :off |
| 94 | + #_#_:suggestions {clojure.core/type tajpu |
| 95 | + clojure.core/name nomspaco} |
| 96 | + #_#_:exclude [frequencies] |
| 97 | + #_#_:include [name]} |
| 98 | + :deps.edn {:level :warning}} |
| 99 | + |
| 100 | + ;; Format the output of clj-kondo for GitHub actions |
| 101 | + :output {:pattern "::{{level}} file={{filename}},line={{row}},col={{col}}::{{message}}"}} |
0 commit comments