@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
npm i rome
は非推奨で、npm i rome@next
を利用する必要有- https://www.npmjs.com/package/rome
- 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
- format.rs(CLIのformatを受け取る部分)
- CLI の改善 Pull Request
Refs
- LINE 新卒採用 2023 -https://linecorp.com/ja/career/newgrads/engineering/
- キャリア採用はこちらから
- BGM&SE
- 魔王魂/騒音のない世界/OtoLogic