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.
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-signalThis 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 fileclj-kondo.--lint $FilePath$ --cache.--lint $FilePath$ --cache --config "{:lint-as {manifold.deferred/let-flow clojure.core/let}}".$FileDir$.Create output file from stdoutNever$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 builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |