You don't have javascript enabled. Good luck! :(

stylish-haskell

最終更新日: 2019/03/08

何をするためのツールか?

ソースコードを綺麗に整形するためのツールです。brittany などのソースコードフォーマットツールとの大きな違いは、整形しすぎない点かなと思います。

README に動作結果が載っています。

stylish-haskell 適用前

stylish-haskell 適用後

インストール方法

$ stack install stylish-haskell

$ stylish-haskell --version
stylish-haskell 0.9.2.0

初期設定ファイルの生成方法

$ stylish-haskell --defaults > .stylish-haskell.yaml

生成される設定ファイルの内容は stylish-haskell.yaml で確認できます。

default-extensions

以下のように package.yamldefault-extensions にデフォルトの言語拡張を指定する場合があります。

このように指定するということは、ソースコード上からは上記の言語拡張を削除すると思います。

その結果、stylish-haskell は言語拡張を認識できずに、以下のようなエラーを返してしまいます。

$ stylish-haskell app/Main.hs
Language.Haskell.Stylish.Parse.parseModule: could not parse app/Main.hs: ParseFailed (SrcLoc "<unknown>.hs" 10 3) "Improper character constant or misplaced '"

この場合は、.stylish-haskell.yaml (設定ファイル) に言語拡張を指定すれば上手くいきます。

ワンライナー

haskell-jp slack から借用しました。ありがとうございます!

指定したディレクトリ以下に対して再帰的に適用する。

ファイル名やディレクトリ名に特殊な文字(空白や引用符など)が含まれていても動作するバージョン。

$ find . -type f -name "*hs" -not -path '.git' -not -path '*.stack-work*' -print0 | xargs -0 stylish-haskell -i

git 管理の場合

git で管理している hs ファイルにのみに適用する場合

$ git ls-files -z | egrep -z 'hs$' | xargs -0 stylish-haskell -i