Toast IDE 获得 Markdown 拼写检查功能
Toast IDE Gets Markdown Spell Checking

原始链接: https://github.com/paradise-runner/toast

**Toast** 是一款现代化的终端开发环境,专为那些希望拥有强大编辑器功能,却又不想像使用 Neovim 或 Emacs 那样进行繁琐配置的用户而设计。它提供了一种“开箱即用”的体验,内置了 LSP、文件树、多标签页以及主题支持。 主要功能包括: * **即用型工具:** 集成语言服务器(Go、Rust、Python、JS/TS、Markdown)、Tree-sitter 语法高亮和拼写检查。 * **核心功能:** 全项目搜索(通过 `rg`)、文件查找、Markdown 预览以及支持 Git 的文件管理。 * **高度可配置:** 用户可以通过 JSON 配置文件轻松自定义快捷键、编辑器行为和主题(包括导入 VSCode 主题)。 Toast 使用 Go 语言编写,目前处于开发初期。macOS 用户可通过 Homebrew 或从 GitHub 安装二进制文件来使用。无论是代码导航、标签页管理还是配置自定义 LSP,Toast 都旨在保持您的工作流程高效,并完全在终端内完成。 *注:作为早期阶段的项目,用户可能会遇到 Bug。*

Hacker News 最新 | 过往 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Toast IDE 获得 Markdown 拼写检查功能 (github.com/paradise-runner) 由 dividedcomet 在 2 小时前发布,3 分 | 隐藏 | 过往 | 收藏 | 讨论 帮助 考虑申请 YC 2026 年秋季批次!申请截止日期为 7 月 27 日。 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:
相关文章

原文

toast is a beatiful developer environment right in your terminal. nvim and emacs have you build your editor from scratch, while toast ships with managed LSPs, an integrated file tree, multiple file tabs, and themes out of the box. toast is for the developer who wants to stay in their terminal without spending hours getting it up to snuff.

⚠️ This project is in early development, you may encounter bugs. ⚠️

toast logo

  • Multi-tab editing with unsaved-changes indicators, mouse-close buttons, and quit confirmation
  • Syntax highlighting via tree-sitter (Go, Python, JavaScript, TypeScript, Rust, CSS, HTML, YAML, Bash, Markdown)
  • Managed language servers — Toast offers to install missing servers for Go, Rust, Python, JavaScript, TypeScript, and Markdown (harper), with an extensible config for other languages
  • Spell checking — misspelled words in Markdown and plain-text files are underlined in the theme's diagnostic color via harper
  • Go to definition — hold Ctrl and hover to underline symbols with a target, then Ctrl-click to jump to the exact definition
  • File tree sidebar with git status, ignored-file dimming, create/delete actions, file watching, and draggable resizing
  • Project-wide search powered by rg (ripgrep)
  • In-file find/replace with next/previous navigation, match-case, and whole-word options
  • Markdown preview for .md, .markdown, and .mdx files
  • Theme system — built-in system (derived from terminal colors at runtime), toast-dark, and toast-light, plus a VSCode theme importer
  • Configurable via ~/.config/toast/config.json

Homebrew (macOS)

brew install paradise-runner/tap/toast

Download a release

Grab a zip for your platform from the releases page, unzip it, and place the binary on your $PATH:

# example for 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

Build from source

Requires Go 1.25.2+.

git clone https://github.com/paradise-runner/toast
cd toast
make build
# binary written to bin/toast
toast               # open current directory
toast path/to/dir   # open a specific directory
toast path/to/file  # open a file (auto-detects git root)
toast new/file.go   # open a new file buffer if the parent directory exists
toast --help
toast --version

rg is required for project search. When a built-in language server is missing, Toast shows an install prompt in the lower-right corner. Managed installs use the language's standard toolchain (go, npm, or rustup) or download a prebuilt binary (harper), and only run after you accept the prompt. Toast also uses compatible servers already on your $PATH.

All keybindings can be remapped in ~/.config/toast/config.json (see Configuration).

Key Action
Ctrl+Q Quit
Ctrl+S / Cmd+S Save
Ctrl+W / Cmd+W Close tab
Ctrl+P Quick-open file search (fuzzy)
Ctrl+Alt+Right Next tab
Ctrl+Alt+Left Previous tab
Ctrl+B Toggle sidebar
Ctrl+Shift+E Toggle focus between editor and file tree
Ctrl+Shift+F Search
Ctrl+F / Cmd+F Find and replace in the current file
Ctrl+G / Cmd+L Go to line
Ctrl+Shift+M Toggle Markdown preview
Ctrl+Z / Cmd+Z Undo
Ctrl+Y / Ctrl+Shift+Z / Cmd+Y / Cmd+Shift+Z Redo
Ctrl+Space / Cmd+Space Trigger completion
Ctrl+Shift+K Show hover
Ctrl+hover / Ctrl-click Check for and follow a definition
F12 Go to the definition at the cursor

Toast reads ~/.config/toast/config.json on startup. Missing keys fall back to defaults.

{
  "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"]
}

All default keybindings can be overridden with the keybindings object. Each action accepts a list of key strings (supports ctrl, alt, shift, super modifiers). An empty list unbinds the action.

{
  "keybindings": {
    "save": ["ctrl+s"],
    "quick_open": ["ctrl+o"],
    "next_tab": ["ctrl+tab"],
    "prev_tab": ["ctrl+shift+tab"],
    "quit": []
  }
}

Available actions: 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.

Omit lsp to use Toast's managed defaults for Go, Rust, Python, JavaScript, TypeScript, and Markdown; set "lsp": {} to disable all language servers. Entries in lsp override the managed default for that language, while unlisted managed languages keep their defaults — so a partial config never loses newly shipped servers. Each entry is extension-driven, so other languages can be added without changing Toast. A custom server already installed on $PATH only needs a command and its filename suffixes:

{
  "lsp": {
    "zig": {
      "command": "zls",
      "args": [],
      "extensions": [".zig"]
    }
  }
}

For an opt-in managed custom server, add managed_command (the installed executable path) and an install recipe. Recipes support {install_dir}, {install_root}, {root_dir}, {home}, and {target} (the platform's Rust target triple, for per-platform prebuilt binaries) placeholders:

{
  "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": {}
      }
    }
  }
}

Alternatively, an install recipe can download a prebuilt binary archive. The archive must contain a single executable file at its root (a wrapping top-level directory is tolerated); it is installed to {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"
        }
      }
    }
  }
}

Built-in themes: system, toast-dark, toast-light. Custom themes live in ~/.config/toast/themes/.

Import a VSCode theme:

toast migrate-theme vscode path/to/theme.json
# writes ~/.config/toast/themes/<theme-name>.json

Then set "theme": "<theme-name>" in your config.

Found a bug or have a feature request? We'd love to hear from you! Please open an issue on GitHub with as much detail as possible. Your feedback helps make Toast better.

make build             # compile
make run               # go run ./cmd/toast .
make test              # go test ./...
make test-integration  # run opt-in Ghostty/tmux terminal integration tests
make test-integration-update  # refresh golden screenshots
联系我们 contact @ memedata.com