程式碼格式化
貼上程式碼就自動排版,語言自動識別,無需點按鈕。
格式化結果
使用方法
- 把程式碼貼上到輸入框,下方即時排版,沒有「格式化」按鈕。
- 語言會從程式碼裡自動判斷;猜錯時從下拉框手動選擇。縮排 2/4 空格、行寬 80/100/120 切換後立即重排。
- 確認結果後複製,或按實際語言下載為 .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,也不會儲存。
相關工具
程式碼排整齊之後,通常還會用到這些。