From f83a1f70d542ac885b72d1161140d6d999e2d7b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=8A=E5=96=AC?= Date: Sat, 17 Jul 2021 21:07:02 +0800 Subject: [PATCH] Add option to clojure clj-kondo linter (#3812) Allow define `clojure_clj_kondo_options` to customize command options for `clj-kondo`. The `--cache` in original command is now defined as default. --- ale_linters/clojure/clj_kondo.vim | 14 +++++++++++++- doc/ale-clojure.txt | 8 ++++++++ test/linter/test_clj_kondo.vader | 15 +++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 test/linter/test_clj_kondo.vader diff --git a/ale_linters/clojure/clj_kondo.vim b/ale_linters/clojure/clj_kondo.vim index eb60ce77..e3f93b6b 100644 --- a/ale_linters/clojure/clj_kondo.vim +++ b/ale_linters/clojure/clj_kondo.vim @@ -1,6 +1,18 @@ " Author: Masashi Iizuka " Description: linter for clojure using clj-kondo https://github.com/borkdude/clj-kondo +call ale#Set('clojure_clj_kondo_options', '--cache') + +function! ale_linters#clojure#clj_kondo#GetCommand(buffer) abort + let l:options = ale#Var(a:buffer, 'clojure_clj_kondo_options') + + let l:command = 'clj-kondo' + \ . ale#Pad(l:options) + \ . ' --lint %t' + + return l:command +endfunction + function! ale_linters#clojure#clj_kondo#HandleCljKondoFormat(buffer, lines) abort " output format " ::: : @@ -29,6 +41,6 @@ call ale#linter#Define('clojure', { \ 'name': 'clj-kondo', \ 'output_stream': 'stdout', \ 'executable': 'clj-kondo', -\ 'command': 'clj-kondo --cache --lint %t', +\ 'command': function('ale_linters#clojure#clj_kondo#GetCommand'), \ 'callback': 'ale_linters#clojure#clj_kondo#HandleCljKondoFormat', \}) diff --git a/doc/ale-clojure.txt b/doc/ale-clojure.txt index 2bf00c03..3ff367f6 100644 --- a/doc/ale-clojure.txt +++ b/doc/ale-clojure.txt @@ -9,6 +9,14 @@ A minimal and opinionated linter for code that sparks joy. https://github.com/borkdude/clj-kondo +g:ale_clojure_clj_kondo_options *g:ale_clojure_clj_kondo_options* + *b:ale_clojure_clj_kondo_options* + Type: |String| + Default: `'--cache'` + + This variable can be changed to modify options passed to clj-kondo. + + =============================================================================== joker *ale-clojure-joker* diff --git a/test/linter/test_clj_kondo.vader b/test/linter/test_clj_kondo.vader new file mode 100644 index 00000000..869f9f2a --- /dev/null +++ b/test/linter/test_clj_kondo.vader @@ -0,0 +1,15 @@ +Before: + call ale#assert#SetUpLinterTest('clojure', 'clj_kondo') + +After: + call ale#assert#TearDownLinterTest() + +Execute(The default command should be correct): + AssertLinter 'clj-kondo', 'clj-kondo' + \ . ' --cache --lint %t' + +Execute(Extra options should be supported): + let g:ale_clojure_clj_kondo_options = '--config ./clj-kondo/config.edn' + + AssertLinter 'clj-kondo', 'clj-kondo' + \ . ' --config ./clj-kondo/config.edn --lint %t'