程式碼格式化

貼上程式碼就自動排版,語言自動識別,無需點按鈕。

使用方法

  1. 把程式碼貼上到輸入框,下方即時排版,沒有「格式化」按鈕。
  2. 語言會從程式碼裡自動判斷;猜錯時從下拉框手動選擇。縮排 2/4 空格、行寬 80/100/120 切換後立即重排。
  3. 確認結果後複製,或按實際語言下載為 .js / .ts / .json / .py 等檔案。

示例

輸入

interface User{id:number;name:string;roles?:string[]}
function greet(user:User,lang:"zh"|"en"="zh"):string{if(!user.roles?.length){return lang==="zh"?"你好,訪客":"Hello, guest";}return lang==="zh"?`你好,${user.name}`:`Hello, ${user.name}`;}

格式化結果

interface User {
  id: number;
  name: string;
  roles?: string[];
}
function greet(user: User, lang: "zh" | "en" = "zh"): string {
  if (!user.roles?.length) {
    return lang === "zh" ? "你好,訪客" : "Hello, guest";
  }
  return lang === "zh" ? `你好,${user.name}` : `Hello, ${user.name}`;
}

預設規則(2 空格、行寬 80):Prettier 會補分號、統一雙引號;範本字串與訪客回退文案保持原樣。

規則、侷限與已知問題

  • 格式化只改空白與格式器自身的規範化(引號、分號、尾逗號),不執行程式碼、不排序鍵、不改識別符號,字串內容保持不變。
  • 引擎:JavaScript、TypeScript、JSON、CSS、SCSS、Less、HTML、Vue、GraphQL 用 Prettier;Python 用 Ruff(Black 相容)。只在首次使用某語言時下載對應引擎,瀏覽器會快取。
  • 自動識別是啟發式:以標籤開頭的片段可能被判為 HTML(即使它是 JSX),請手動選 JavaScript 或 TypeScript;看起來像 JSON 但解析失敗的物件會回退到 JavaScript。
  • 手動選擇優先:選了 CSS 就不會悄悄按 SCSS 輸出;TypeScript 會先試 .ts,再試 .tsx。
  • JSON 使用 Prettier 的 json parser,短物件可能保持一行;需要嚴格校驗、鍵排序或壓縮請用 JSON 工具箱。重複鍵保留最後一個值(與 JSON.parse 一致)。
  • Prettier 預設風格固定:雙引號、分號、合法處的尾逗號;不讀取 .prettierrc / .editorconfig,也不提供引號/分號選項。Python 固定雙引號並尊重 magic trailing comma(Ruff/Black)。
  • HTML 空白按 htmlWhitespaceSensitivity: css 處理,內聯元素周圍的空格可能與原文不同。不支援 Markdown / YAML / XML,分別由 Markdown 編輯器、config-converter 與 XML 格式化覆蓋。
  • 輸出使用 LF、末尾無空行,格式化是冪等的。超過 20 萬字符時結果會在停止輸入約 0.6 秒後更新;格式化在 Web Worker 中執行,原文不會上傳、不會寫入 URL,也不會儲存。

程式碼排整齊之後,通常還會用到這些。