tombi:876⭐のTOMLフォーマッタと言語サーバー
TOMLは設定ファイルのフォーマットとしてますます一般的になっています——pyproject.toml、Cargo.toml、config.tomlなど、ほぼすべてのプロジェクトに存在します。しかし正直なところ、TOMLを書く体験はJSONやYAMLほどスムーズではありません:インデントが揃わない、配列の改行が混乱している、キーと値が揃っていない……tombiはこの問題を解決するために作られました。
これは 876 stars のRustプロジェクトで、完全なTOMLツールチェーンを提供します:フォーマッタ、Linter、言語サーバー。名前”Tombi”(鳶)は日本語の”トビ”(黒鸢)に由来し、発音は /toɴbi/ です。
核心機能
| 機能 | 説明 |
|---|---|
| Formatter | TOMLの自動フォーマット、整列、改行、コメント保持に対応 |
| Linter | TOMLの構文と潜在的な問題をチェック |
| Language Server | LSPサポートを提供、補完、定義ジャンプ、ホバーヒント |
エディタ対応
tombiは主要なエディタエコシステムをほぼカバーしています:
| エディタ | インストール方法 |
|---|---|
| VS Code | Marketplace |
| JetBrains | Plugin Marketplace |
| Zed | 組み込み拡張 |
| Vim/Neovim | LSP設定 |
クイックスタート
インストール不要でuvxから直接実行できます:
uvx tombi format pyproject.toml
またはシステムにインストール:
# Homebrew
brew install tombi
# PyPI
pip install tombi
# npm
npm install -g tombi
フォーマット効果の例
フォーマット前:
[package]
name="my-app"
version="1.0.0"
dependencies={
serde="1.0",
tokio={version="1.0",features=["full"]}
}
フォーマット後:
[package]
name = "my-app"
version = "1.0.0"
[package.dependencies]
serde = "1.0"
[package.dependencies.tokio]
version = "1.0"
features = ["full"]
プロジェクト情報
| 属性 | 詳細 |
|---|---|
| GitHub | tombi-toml/tombi |
| Stars | 876 |
| 言語 | Rust |
| License | MIT |
| ドキュメント | tombi-toml.github.io/tombi |
なぜtombiを使うのか?
- 純Rust実装 - 優れたパフォーマンス、高速起動
- 完全なLSPサポート - フォーマットだけでなく、インテリジェントなヒントも
- エディタエコシステムが充実 - 異なるエディタごとに異なるプラグインを探す必要がない
- アクティブなメンテナンス - 2024年10月に作成され、継続的に更新
プロジェクトに多数のTOMLファイルが存在する場合、tombiはその管理を楽にしてくれます。