プログラミング
Toast IDEがMarkdownスペルチェックに対応
Toast IDE Gets Markdown Spell Checking (github.com)
要約
Toastは、ターミナル内で動作する開発環境で、マネージドLSP、ファイルツリー、タブ編集、テーマなどを標準装備しています。このプロジェクトは初期開発段階ですが、構文ハイライト、スペルチェック、定義ジャンプ、Gitステータス付きファイルツリー、プロジェクト横断検索、Markdownプレビューなどの機能を備えています。インストールはHomebrewまたはリリースからのダウンロードで可能です。
全文翻訳
toast
toastは、ターミナル内で動作する美しい開発環境です。nvimやemacsはエディタをゼロから構築する必要がありますが、toastはマネージドLSP、統合ファイルツリー、複数ファイルタブ、テーマを標準で提供します。toastは、数時間かけてエディタを整備することなく、ターミナルに留まりたい開発者のためのものです。
⚠️ このプロジェクトは初期開発段階であり、バグに遭遇する可能性があります。
⚠️
機能
未保存変更インジケーター、マウスでのクローズボタン、終了確認付きのマルチタブ編集
構文ハイライト(tree-sitter経由): Go、Python、JavaScript、TypeScript、Rust、CSS、HTML、YAML、Bash、Markdown
マネージド言語サーバー — Toastは、Go、Rust、Python、JavaScript、TypeScript、Markdown(harper)の不足しているサーバーのインストールを提案し、他の言語用の拡張可能な設定を備えています。
スペルチェック — Markdownおよびプレーンテキストファイル内のスペルミスは、テーマの診断色で下線が引かれます(harper経由)。
定義へ移動 — Ctrlキーを押しながらホバーするとターゲットのシンボルが下線で表示され、Ctrl+クリックで正確な定義にジャンプします。
Gitステータス、無視されたファイルの色調、作成/削除アクション、ファイル監視、ドラッグ可能なリサイズ機能を備えたファイルツリーサイドバー
rg(ripgrep)で強化されたプロジェクト全体検索
次/前のナビゲーション、大文字/小文字を区別する検索、単語全体検索オプション付きのファイル内検索/置換
.md、.markdown、.mdxファイルのMarkdownプレビュー
テーマシステム — 組み込みシステム(実行時にターミナルカラーから派生)、toast-dark、toast-light、およびVSCodeテーマインポーターが含まれています。
設定は~/.config/toast/config.jsonで設定可能
インストール
Homebrew(macOS)
brew install paradise-runner/tap/toast
リリースからダウンロード
プラットフォーム用のzipをリリースページから取得し、解凍して、バイナリを$PATHに配置します。
# Apple Siliconの例
curl -Lo toast.zip https://github.com/paradise-runner/toast/releases/latest/download/toast-darwin-arm64.zip
unzip toast.zip
install -m755 toast-darwin-arm64 /usr/local/bin/toast
ソースからビルド
Go 1.25.2+が必要です。
git clone https://github.com/paradise-runner/toast
cd toast
make build
# バイナリはbin/toastに書き込まれます
使用方法
toast
# 現在のディレクトリを開く
toast path/to/dir
# 特定のディレクトリを開く
toast path/to/file
# ファイルを開く(gitルートを自動検出)
toast new/file.go
# 親ディレクトリが存在する場合、新しいファイルバッファを開く
toast --help
toast --version
プロジェクト検索にはrgが必要です。組み込み言語サーバーが不足している場合、Toastは右下にインストールプロンプトを表示します。マネージドインストールは、言語の標準ツールチェーン(go、npm、またはrustup)を使用するか、プリビルドバイナリ(harper)をダウンロードし、プロンプトを承認した後にのみ実行されます。Toastは、$PATHにある互換性のあるサーバーも使用します。
キーバインディング
すべてのキーバインディングは、~/.config/toast/config.jsonで再マッピングできます(設定を参照)。
キー
アクション
Ctrl+Q
終了
Ctrl+S / Cmd+S
保存
Ctrl+W / Cmd+W
タブを閉じる
Ctrl+P
クイックオープンファイル検索(ファジー)
Ctrl+Alt+Right
次のタブ
Ctrl+Alt+Left
前のタブ
Ctrl+B
サイドバーの切り替え
Ctrl+Shift+E
エディタとファイルツリーの間でフォーカスを切り替える
Ctrl+Shift+F
検索
Ctrl+F / Cmd+F
現在のファイルで検索/置換
Ctrl+G / Cmd+L
行へ移動
Ctrl+Shift+M
Markdownプレビューの切り替え
Ctrl+Z / Cmd+Z
元に戻す
Ctrl+Y / Ctrl+Shift+Z / Cmd+Y / Cmd+Shift+Z
やり直し
Ctrl+Space / Cmd+Space
補完のトリガー
Ctrl+Shift+K
ホバー表示
Ctrl+hover / Ctrl-click
定義をチェックしてフォローする
F12
カーソル位置の定義へ移動
設定
Toastは起動時に~/.config/toast/config.jsonを読み込みます。キーが欠落している場合はデフォルト値が使用されます。
{
"theme": "toast-dark",
"editor": {
"tab_width": 4,
"auto_indent": true,
"trim_trailing_whitespace_on_save": true,
"insert_final_newline_on_save": true
},
"sidebar": {
"visible": true,
"width": 30,
"confirm_delete": true,
"file_icons": {
"enabled": true,
"color_mode": "accent"
}
},
"ignored_patterns": [
".git",
"node_modules",
"__pycache__",
".DS_Store"
]
}
キーバインディング
すべてのデフォルトキーバインディングは、keybindingsオブジェクトを使用してオーバーライドできます。各アクションはキー文字列のリストを受け入れます(ctrl、alt、shift、super修飾子をサポート)。空のリストはアクションをバインド解除します。
{
"keybindings": {
"save": ["ctrl+s"],
"quick_open": ["ctrl+o"],
"next_tab": ["ctrl+tab"],
"prev_tab": ["ctrl+shift+tab"],
"quit": []
}
}
利用可能なアクション: quit、toggle_sidebar、save、new_file、close_tab、undo、redo、next_tab、prev_tab、search、find_replace、quick_open、go_to_line、go_to_definition、toggle_focus、markdown_preview、show_hover、trigger_completion。
lspを省略すると、Go、Rust、Python、JavaScript、TypeScript、MarkdownのToastマネージドデフォルトが使用されます。すべての言語サーバーを無効にするには "lsp": {} を設定します。lspのエントリは、その言語のマネージドデフォルトをオーバーライドし、リストにないマネージド言語はデフォルトを維持します — そのため、部分的な設定でも新しく出荷されたサーバーを失うことはありません。各エントリは拡張機能駆動型であるため、Toastを変更せずに他の言語を追加できます。すでに$PATHにインストールされているカスタムサーバーは、コマンドとそのファイル名のサフィックスのみが必要です。
{
"lsp": {
"zig": {
"command": "zls",
"args": [],
"extensions": [".zig"]
}
}
}
オプトインマネージドカスタムサーバーの場合、managed_command(インストールされた実行可能ファイルのパス)とインストールレシピを追加します。レシピは、{install_dir}、{install_root}、{root_dir}、{home}、および{target}(プラットフォームごとのプリビルドバイナリ用のプラットフォームのRustターゲットトリプル)プレースホルダーをサポートします。
{
"lsp": {
"example": {
"command": "example-language-server",
"args": ["--stdio"],
"extensions": [".example"],
"managed_command": "{install_dir}/bin/example-language-server",
"install": {
"name": "Example Language Server",
"command": "example-package-manager",
"args": ["install", "--bin-dir", "{install_dir}/bin", "example-language-server"],
"env": {}
}
}
}
}
または、インストールレシピはプリビルドバイナリアーカイブをダウンロードできます。アーカイブは、ルートに単一の実行可能ファイルを含んでいる必要があります(ラップするトップレベルディレクトリは許容されます)。これは{install_dir}/binにインストールされます。
{
"lsp": {
"example": {
"command": "example-language-server",
"args": ["--stdio"],
"extensions": [".example"],
"managed_command": "{install_dir}/bin/example-language-server",
"install": {
"name": "Example Language Server",
"download": {
"url": "https://github.com/org/example/releases/latest/download/example-ls-{target}.tar.gz"
}
}
}
}
}
テーマ
組み込みテーマ: system、toast-dark、toast-light。
カスタムテーマは~/.config/toast/themes/にあります。
VSCodeテーマをインポートする:
toast migrate-theme vscode path/to/theme.json
# ~/.config/toast/themes/<theme-name>.json に書き込む
その後、設定で "theme": "<theme-name>" を設定します。
フィードバックと問題
バグを見つけたり、機能リクエストがありますか?ぜひお聞かせください!できるだけ詳細を添えてGitHubでイシューを開いてください。あなたのフィードバックはToastをより良くするのに役立ちます。
開発
make build
# コンパイル
make run
# go run ./cmd/toast .
make test
# go test ./...
make test-integration
# オプトインGhostty/tmuxターミナル統合テストを実行
make test-integration-update
# ゴールデンスクリーンショットを更新