2022/04/20 に公開 1841 views

このエピソードについて

@spring_raining が @potato4d に、ついにリリースされた Rome Formatter について話を聞いてみました。

Rome について

オフィシャルのリリース告知はこちら: https://rome.tools/blog/2022/04/05/rome-formatter-release

  • Rome 概要
    • https://rome.tools/
    • Front-End Tooling をすべて作り直すプロジェクト
    • 会社で組織的に運用されていて、投資も受けている
    • コードベースがほぼすべて Rust であり、 AST を 1 から作り直すことで高品質なツールチェインを実現
      • 従来のツール (TSC/ESLint/Prettier/TypeScript) は AST がバラバラでオーバーヘッドがひどい
      • 統一されるとそのオーバーヘッドがなくなり、非常に高速となる
  • Rome レポジトリ
  • NPM
  • Formatter

言語の対応状況

Language Parsing Formatting Linting
JavaScript 🚫
TypeScript 🚫
JSX ⌛️ 🚫
JSON 🚫 🚫 🚫
HTML 🚫 🚫 🚫
CSS 🚫 🚫 🚫
Markdown 🚫 🚫 🚫

TypeScript React のプロジェクトでは利用できるが、他のコードまで Prettier にゆだねている場合は format できない

CLI Options

  • 現在使えるもの
    • --indent-style: インデントのスタイルを設定できる(デフォルトはハードタブ)
    • --indent-size: インデントのサイズを設定できる(デフォルトは2)
  • 今後使えるもの
    • --quote-style: シングルクォートかダブルクォートか(現状はダブルで固定)
    • --line-width: 行の最大幅 printWidth の設定(現状は 80 で固定)

Code Reading

Refs