clj-konodo
これは何?
https://github.com/clj-kondo/clj-kondo#command-line
静的分析ツール。
走らせると間違っているところを指摘してくれる。
https://github.com/clj-kondo/clj-kondo#features
詳細なチェック項目はここにある。
インストール
https://github.com/clj-kondo/clj-kondo/blob/master/doc/install.md#brew-macos-and-linux
arch -arm64 brew install borkdude/brew/clj-kondo ==> Installing clj-kondo from borkdude/brew
直接叩くコマンドではないのに brew で入れる。
clj-kondo --version clj-kondo v2022.05.31
コマンドでの使い方
Options: --lint <file>: a file can either be a normal file, directory or classpath. In the case of a directory or classpath, only .clj, .cljs and .cljc will be processed. Use - as filename for reading from stdin. --lang <lang>: if lang cannot be derived from the file extension this option will be used. Supported values: clj, cljs, cljc. --filename <file>: in case stdin is used for linting, use this to set the reported filename.
通常は --lint {fileName} で動くらしい。
デフォルトの src/ ディレクトリに打って、エラーが出ないのを確認する
デフォルトのディレクトリを狙って clj-kondo --lint を打ってみる
clj-kondo --lint src/ src/cljblog/core.clj:6:6: warning: unused binding args linting took 170ms, errors: 0, warnings: 1
するとスキャンが走って、エラーがないのを確認できる。
引数が足りない状態でスキャンを打って、エラーが出るのを確認する
(defn -main "I don't do a whole lot ... yet." (println "lint test"))
main を引数
[& args]
なしで書いて、
clj-kondo --lint src/ src/cljblog/core.clj:6:3: error: Function arguments should be wrapped in vector. linting took 185ms, errors: 1, warnings: 0
と
引数がベクトルに包まれてるべき言う指摘が出た。
スキャンとエラーの洗い出しが機能しているのが確認できた。
clj-kondo まとめ
brew でインストールできる。
clojure コードを書いた際にファイルやディレクトリに対して打てば
ミスっている時に指摘してくれる。
VSCode/ Calva
Extension Store でインストール
検索して出てくるので、インストールすると
hover で警告がだせた。
間違えている時に自動で教えてくれると効率が上がりそう。
cljstyle
これは何?
トヨクモ株式会社の記事によると
- 規定とは違うインデントの数
- 余分なスペース
- 余分な改行
これらを修正してくれるコマンドらしい。
インストールと有効化
https://github.com/greglook/cljstyle#macos-via-homebrew
arch -arm64 brew install --cask cljstyle ... ==> Installing Cask cljstyle 🍺 cljstyle was successfully installed!
cljstyle も brew でインストールできる。
cljstyle --help “cljstyle” cannot be opened because the developer cannot be verified
しかし、デフォルトでは認証が通ってないので実行できない。
Finder/Security&Pravacy/General/
を確認すると、ブロックされているので
Allow Anyway のボタンを押して変更する。
cljstyle version mvxcvi/cljstyle 0.15.0 (1f58e2e7af4c193aa77ad0695f6c2b9ac2c5c5ec)
すると、0.15.0 で入っているのが確認できた。
cljstyle check コマンドで、フォーマットに反している部分の差分を出力する
cljstyle check src --- a/src/cljblog/core.clj +++ b/src/cljblog/core.clj @@ -2,8 +2,7 @@ (:gen-class)) - (defn -main "I don't do a whole lot ... yet." - [& args] + [& args] (println "core.clj's text changed")) 1 files formatted incorrectly
無駄な改行やインデントを敢えて入れて
cljstyle check {dir/} コマンドを叩くと
どこが修正されるかのを表示してくれる。
cljstyle fix コマンドでフォーマットに沿った形に変更する
cljstyle fix Reformatting source file project.clj Reformatting source file src/cljblog/core.clj Reformatting source file test/cljblog/core_test.clj Corrected formatting of 3 files
fix を打つと、フォーマットに沿った形に
実際のファイルが書き換えられる。
https://qiita.com/lagenorhynque/items/a5d83b4a36a1cf1cacbe#vs-code--calva%E3%81%AE%E5%A0%B4%E5%90%88
VSCode Calva に組み込んで、保存時に自動的に fix が走るようにする。
cljstyle まとめ
余分な改行やインデントを検知、変更ができるコマンド。
brew cask でインストールして認証を通して有効化する。
check で変更すべき箇所の差分を出力して
fix で変更をファイルに適用する。
clj-konodo, Calva, cljstyle まとめ
clj-kondo
静的解析ツール (Lint) 。
実行すると文法が間違っている箇所を教えてくれる。
Node.js の eslint 相当。
brew でインストールできる。
Calva
自動解析ツール?
VSCode に入れると、文法が間違っている箇所を
自動で波線( ~ )を出して表示してくれる。
VSCode x TypeScript の標準機能相当。
VSCode の拡張機能ストアでインストールできる。
cljstyle
静的解析ツール (Formatter)
実行するとインデントや改行が間違っている箇所を教えてくれる。
Node.js の prettier 相当。
brew cask でインストールできる。
Top comments (0)