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.
Like most editor plugins, the 'Clojure Lint' extension by @marcomorain uses the installed version of clj-kondo. In Visual Studio Code, go to Preferences > Extensions. Search for 'clojure lint' and select the Click 'install'. That's it.
The native version of clj-kondo is not well supported yet for Windows environments due to limitations of GraalVM. If you're using Windows, you can install the clj-kondo extension instead. It bundles clj-kondo and requires no additional installation. Note that this extension is part of Calva since v2.0.54.
Despite the native not working well on Windows, users can still have command-line version of clj-kondo by installing the NPM package. This invokes the clj-kondo standalone jar.
Atom requires clj-kondo to be on your $PATH
. In Atom, there are a few ways to install:
apm install linter-kondo linter linter-ui-default intentions busy-signal
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.
Create this file in ~/.config/nvim/compiler/clj-kondo.vim
or ~/.vim/compiler/clj-kondo.vim
.
if exists("current_compiler")
finish
endif
let current_compiler="clj-kondo"
if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat=%f:%l:%c:\ Parse\ %t%*[^:]:\ %m,%f:%l:%c:\ %t%*[^:]:\ %m
CompilerSet makeprg=clj-kondo\ --lint\ %
You can populate the quickfix list like so:
:compiler clj-kondo
:make
See romainl's vanilla linting for how to automatically execute linting and automatically open the quickfix.
If you have vim-dispatch installed, you can use this command to be both async and more convenient:
:Dispatch -compiler=clj-kondo
This section assumes that you are already using Cursive.
Repeat the below steps for the file types Clojure (.clj
), ClojureScript (.cljs
)
and CLJC (.cljc
).
+
and choose the <custom>
template.clj-kondo <filetype>
(where <filetype>
is one of
Clojure, ClojureScript or CLJC).Current file
clj-kondo
.--lint $FilePath$ --cache
.--lint $FilePath$ --cache --config "{:lint-as {manifold.deferred/let-flow clojure.core/let}}"
.$FileDir$
.Create output file from stdout
Never
$FILE_PATH$:$LINE$:$COLUMN$: $MESSAGE$
.ok
and under the newly created file-watcher, change level to Global
- this will enable the watcher in all future projects.Ensure that:
syntax-checking
is present in dotspacemacs-configuration-layers
.clj-kondo
is available on PATH.In the .spacemacs
file:
When using the stable master
branch:
In dotspacemacs-additional-packages
add flycheck-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
add flycheck-clj-kondo
and flycheck-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)))))
If using the develop
branch, clj-kondo is available as a part of the standard
clojure layer. This will become the way to install in the next stable
release of spacemacs.
To enable it:
dotspacemacs-configuration-layers
.clojure-enable-linters
with the value 'clj-kondo
.It should look like this:
dotspacemacs-configuration-layers
'(...
(clojure :variables
clojure-enable-linters 'clj-kondo)
)
Reload the config to enable clj-kondo.
Can you improve this documentation? These fine people already did:
Michiel Borkent, Rahul De, Oleg, chorin1, Gerred Dillon, Dominic Monroe & Rahuλ DéEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close