scalafix

自作scalafix ruleの説明その3

以下の続き。 前回書いてから、かなり増えて、もう少しで100個超えそう。 xuwei-k.hatenablog.com xuwei-k.hatenablog.com

IntelliJ IDEA上でTerminalからsbt立ち上げてerrorやwarn出た時にclickで飛べるようにする

IDEAのterminal(sbt pluginではない)、からsbtを起動してcompileなどすると、errorやwarning出た場合にそのpathがclick可能で、そうすると該当のsource codeに飛べて便利だったのだけど、いつの間にか不可能になってるんだけど、これどこかに設定あるのか、v…

Scalaでcase classのconstructorをprivateにしたときのcompanionのapplyの可視性問題と対策

以下のコードがエラーになるかどうか?という話 case class A private(x: Int) object B { def f = A(2) } まずオプションの有無とScala versionによってややこしい。以下が一覧

ScalaMatsuri 2023でscalafixなどの発表した

https://xuwei-k.github.io/slides/matsuri-2023/#1 speakerdeck.com blogやtwitterで大体書いてるようなことをまとめただけなので、特に追記することはないかなぁ。

wartremoverのsbt pluginにscalafixのようなinput task追加した

「scalafixのような」とは build.sbt を編集しなくても、input taskで実行するruleを任意の数、動的に指定可能 ローカルのfileのpathや、urlも指定可能 動的に .scala fileをcompileして、それを実行してくれる url指定したらそれをダウンロードしてくる url…

scalafmtやscalafix適用結果をGitHubのpull reqで自動でsuggestする

一言でいうとreviewdogの紹介をするだけなのですが、すごくタイミングよく罠にハマった?ので、それの暫定的な回避も書いておきます。

scalafixのrule書くときのためにscalametaのAST変換ツールを作った

https://github.com/xuwei-k/scalameta-ast https://xuwei-k.github.io/scalameta-ast/

自作scalafix ruleの説明その2

以前書いてから増えた分の解説。 xuwei-k.hatenablog.com 以前と同様、特に記述がないものは全部SyntacticRuleなので、100%正しく書き換えや警告出せる保証がないです。

unused-codeという未使用コードの検知、削除のsbt-plugin & scalafix rule作ってリリースした

アイデアというか初期実装は、1年近く前に遡るのですが、それをしっかり作り直して整理してリリースしました。 https://github.com/xuwei-k/unused-code まだまだ追加したい機能や改善点などありますが、初期versionでも、結構しっかり作ったつもりなので(?)…

scalafixのruleをまとめてライブラリにしてpublishした

本体にドキュメント書いてないので、とりあえず現時点のruleについてひたすら説明書いておきます https://github.com/xuwei-k/scalafix-rules

packageとdirectoryに整合性がなかったら強制的にファイル移動するscalafixのrule作った

以前、チェックする君だけ作ったのですが、それを雑に改造して、強制移動する君に改良しました。 細かい部分が雑なので、読みにくいし、バグってる可能性もありますが、ご自由にお使いください。 既知の問題として、packageが2行にわかれて書かれていると、…

scalafixを使ってclass名とfile名が異なっているものを自動修正したり警告を出す

というのを作ったので貼っておきます。 細かいところが雑ですが・・・。 Javaだとpublicなclassだと強制的に揃えないといけないですが、良くも悪くもScalaだと自由なので、揃えたい場合には、わざわざこういうのを作らないといけなくて不便。 file名ではなく…

Throwableでtry catchしてしまっているのをNonFatalに書き換えるscalafixのrule

この程度の単純なものならば、正規表現の置換だけで可能な気がしますが、書いたので置いておきます。 NonFatalのimport加えるあたりは、そういう低レベルなやつでやると、適切な位置に追加するのは多少面倒かもしれないですね。 細かいところが多少雑なので…

play-wsのstandalone版に自動書き換えするscalafixのruleを書いた

https://t.co/2G7DXbQ369play-ws-#scalafix 0.1.0 released.non standalone play-ws => play-ws-standalone 😃 pic.twitter.com/Y4JTqiIMRQ— Kenji Yoshida (@xuwei_k) 2020年3月25日 https://github.com/xuwei-k/play-ws-scalafix github.com 歴史とともに、…

scalafixのSymbol literal自動書き換えruleを作った

github.com