Magnolia Tech

いつもコードのことばかり考えている人のために。

Scalafmtのコメントスタイルについて調べた

こんな事を教えていただきました。

なるほど…

Scalafmtとは?

  • ScalafmtはScala用のコードフォーマッタ
  • sbt-scalafmtというsbt pluginが用意されている
  • IntelliJ IDEA用のpluginも用意されている
  • 保存時に自動的にフォーマッタをかけることが可能
  • .scalafmt.confというファイルでカスタマイズ可能
  • 同様のフォーマッタにscalariformというのも有る https://github.com/sbt/sbt-scalariform

Scaladocのスタイルの現状について

  • Scaladocの記法には3種類あることが公式ドキュメントの冒頭に書かれている

    Scaladoc | Scala Documentation

  • アスタリスクの位置と、最初の行をコメントの1行目に書くか、2行目から書くかの違い

  • 特にどのスタイルを強制する、といったことはscaladocとしてはしない
  • Scalafmtのドキュメントでは、Javadocスタイルと、Scaladocスタイルの2種類と記載

    Configuration · Scalafmt

  • JavadocスタイルとScaladocスタイルの使い分けが公式ドキュメントと一致していない

  • 冒頭に紹介されたコミットの内容がドキュメントに未だに反映されていないため
  • issueは挙がっているが、合意には至っていない

    github.com

  • 現状のScalaのライブラリは3番目のスタイルで書かれている…変えていない?

    scala/List.scala at 2.13.x · scala/scala · GitHub

終わりに

色々とカスタマイズができるscalafmtですが、最近だとgofmtのように一切カスタマイズを許容しない、という姿勢の方が分かりやすくていいですね…コードスタイルで議論したくないですよね…

以上、Scaladocのコードスタイルについて調べたことでした。