Before setting up your editor, see Project setup
on how to configure clj-kondo
for your project. TL;DR: this involves creating
a .clj-kondo
directory in the root of your project.
For integrating with Emacs, see flycheck-clj-kondo.
For Spacemacs, check here.
In Visual Studio Code, go to Preferences > Extensions. Search for 'clojure lint' and select the 'Clojure Lint' extension by @marcomorain. Click 'install'. That's it.
This section is for Vim 8+ or Neovim.
-
Install ALE using your favorite plugin manager. This already has in-built support for clj-kondo.
-
In your
.vimrc
, add:let g:ale_linters = {'clojure': ['clj-kondo']}
to only have clj-kondo as the linter.
To enable both clj-kondo and joker, add:
let g:ale_linters = {'clojure': ['clj-kondo', 'joker']}
-
Reload your
.vimrc
and it should start working.
This section assumes that you are already using Cursive.
- Install the File Watchers plugin.
Repeat the below steps for the file types Clojure (.clj
), ClojureScript (.cljs
)
and CLJC (.cljc
).
- Under Preferences / Tools / File Watchers click
+
and choose the<custom>
template. - Choose a name. E.g.
clj-kondo <filetype>
(where<filetype>
is one of Clojure, ClojureScript or CLJC). - In the File type field, choose the correct filetype.
- In the Program field, type
clj-kondo
. - In the Arguments field, type
--lint $FilePath$ --cache
. - In the Working directory field, type
$FileDir$
. - Enable
Create output file from stdout
- In output filters put
$FILE_PATH$:$LINE$:$COLUMN$: $MESSAGE$
.
Ensure that:
syntax-checking
is present indotspacemacs-configuration-layers
.clj-kondo
is available on PATH.
In the .spacemacs
file:
-
In
dotspacemacs-additional-packages
addflycheck-clj-kondo
. -
In the
dotspacemacs/user-config
function add the following:(use-package clojure-mode :ensure t :config (require 'flycheck-clj-kondo))
To install it alongside joker:
-
In
dotspacemacs-additional-packages
addflycheck-clj-kondo
andflycheck-joker
. -
In the
dotspacemacs/user-config
function add the following:(use-package clojure-mode :ensure t :config (require 'flycheck-joker) (require 'flycheck-clj-kondo) (dolist (checker '(clj-kondo-clj clj-kondo-cljs clj-kondo-cljc clj-kondo-edn)) (setq flycheck-checkers (cons checker (delq checker flycheck-checkers)))) (dolist (checkers '((clj-kondo-clj . clojure-joker) (clj-kondo-cljs . clojurescript-joker) (clj-kondo-cljc . clojure-joker) (clj-kondo-edn . edn-joker))) (flycheck-add-next-checker (car checkers) (cons 'error (cdr checkers)))))
Reload the config to enable clj-kondo.