Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →基於 JavaScript 的代碼風格,優化 Git diff 可讀性與可合併性。使用 Tab 縮排(除非原始縮排是空格),Allman 風格大括號。
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 11% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 128% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 128% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 61% | 0% |
此風格旨在減少 Git 差異中的視覺雜訊,提升程式碼合併時的可讀性與安全性。
{ 或 ;如果原始代碼沒有大括號或分號,保持原樣:
javascript// ✅ 保持不變 if (maxSize) this.maxCacheSize = maxSize // ✅ 保持不變 if (condition) doSomething() else doOther()
不要強行轉換為:
javascript// ❌ 不要這樣做 if (maxSize) { this.maxCacheSize = maxSize; }
除非使用者明確要求添加分號。
> ⚠️ 以下代碼範例使用 Tab 縮排
\n),不論系統環境為何javascriptfunction foo() { // ... } export function bar() { // ... }
javascriptif (condition) { // ... } else if (otherCondition) { // ... } else { // ... } for (let i = 0; i < n; i++) { // ... } while (condition) { // ... } switch (value) { case 'a': // ... break; default: // ... }
javascriptconst { foo, bar, } = object; let { keys = [], useSource, } = options;
typescriptinterface IOptions<T> { keys?: string[]; sort?: (a: any, b: any) => number; }
當需要為代碼添加註解時,推薦參考 analyze-code-commenter skill 的風格:
/** ... */),不使用行內註解 (//)當從同一模組引入三個或更多項目時,應使用多行格式,每個項目獨佔一行。若原始碼已使用多行格式,即使少於三個項目,也應保持原樣,且每個項目仍應獨佔一行:
typescript// ✅ 三個及以上引用:使用多行格式 import { applyEdits, format, parse, createScanner, SyntaxKind, FormattingOptions as IJsonHandlerFormattingOptions, modify, ParseError as IParseError, printParseErrorCode, JSONPath as IJSONPath, ModificationOptions as IModificationOptions, } from 'jsonc-parser'; // ✅ 兩個引用:可使用單行格式 import { foo, bar } from 'module'; // ✅ 單一引用:使用單行格式 import { something } from 'module'; // ✅ 原始碼已使用多行格式:保持原樣(即使少於三個項目) import { foo, bar, } from 'module'; // ❌ 錯誤:多行格式中不應將多個項目放在同一行 import { foo, bar, } from 'module';
當 import、陣列或物件使用多行格式時,每個成員獨佔一行,且每行結尾必須加上逗號(包括最後一行):
typescript// ✅ Import 多行格式 import { join, resolve, } from 'path'; // ✅ 陣列多行格式 let arr = [ join, resolve, ]; // ✅ 物件多行格式 let map = { join: '', resolve: '', };
這樣做的好處:
' 而非 " )| 項目 | Standard Style | Git-Friendly | |------|----------------|--------------| | 函數大括號 | 同一行 | 換行 | | if/else 大括號 | 同一行 | 換行 | | 縮排 | 2 空格 | Tab(除非原為空格)| | 行尾 | 環境預設 | LF(統一)| | 多行尾逗號 | 可選 | 必須 |
Other measured skills in the registry, with their headline benchmark lift.