āĻŽā§āϞ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻžāĻŦāϞā§
- āĻāĻ āĻā§āϞāĻŋāĻā§ Objective-C āĻāĻŦāĻ Objective-C++ āϏā§āϰā§āϏ āĻĢāĻžāĻāϞ (`.m`, `.mm`) āĻĢāϰāĻŽā§āϝāĻžāĻ āĻāϰā§āύ
- LLVM-āĻāϰ clang-format āĻĻā§āĻŦāĻžāϰāĻž āϏāĻŽāϰā§āĻĨāĻŋāϤ, āĻĒā§āϰā§āĻŦāĻžāĻāĻžāϏāϝā§āĻā§āϝ āĻāĻŦāĻ āĻļāĻŋāϞā§āĻĒ-āĻŽāĻžāύā§āϰ āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ
- āĻ āĻĒāĻžāϰā§āĻāϰ, āĻŽā§āĻĨāĻĄ āϏāĻŋāĻāύā§āĻāĻžāϰ āĻāĻŦāĻ āĻŽā§āϏā§āĻ āϏā§āύā§āĻĄā§āϰ āĻāĻžāϰāĻĒāĻžāĻļā§āϰ āϏā§āĻĒā§āϏ āϏā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻāϰā§
- āĻāύā§āĻāĻžāϰāĻĢā§āϏ, āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻā§āĻļāύ āĻāĻŦāĻ āĻāύā§āĻā§āϰā§āϞ-āĻĢā§āϞā§āϰ āĻāύā§āϝ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āĻŦā§āϰā§āϏ āϏā§āĻāĻžāĻāϞ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§
- āĻāϰāĻ āĻĒāĻžāĻ āϝā§āĻā§āϝ āĻšā§āĻĄāĻžāϰ āĻāĻŦāĻ āϏā§āϰā§āϏā§āϰ āĻāύā§āϝ āĻāĻŽā§āĻĒā§āϰā§āĻ āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻāĻŦāĻ āĻā§āϰā§āĻĒ āĻāϰāĻž āϰāĻžāĻā§
- āϞāĻŋāĻā§āϏāĻŋ Objective-C āĻĒā§āϰāĻā§āĻā§āĻ, āĻŽāĻŋāĻļā§āϰ Swift/ObjC āĻ ā§āϝāĻžāĻĒ āĻāĻŦāĻ āĻĻā§āϰā§āϤ āĻĒā§āϰāĻŋ-PR āĻā§āϞāĻŋāύāĻāĻĒā§āϰ āĻāύā§āϝ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ
- UI āϰā§āϏāĻĒāύā§āϏāĻŋāĻ āϰāĻžāĻāϤ⧠āĻāĻžāĻāĻŽāĻāĻāĻ āĻāĻŦāĻ āϏāĻžāĻāĻ āϞāĻŋāĻŽāĻŋāĻ āϏāĻš āϏāĻžāϰā§āĻāĻžāϰ-āĻŦā§āϝāĻžāĻāĻĄ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻļāύ
đ ī¸ āĻāĻŋāĻāĻžāĻŦā§ Objective-C āĻā§āĻĄ āĻĢāϰāĻŽā§āϝāĻžāĻ āĻāϰāĻŦā§āύ for objectivec-formatter
ā§§. āĻāĻĒāύāĻžāϰ āĻā§āĻĄ āĻĒā§āϏā§āĻ āĻŦāĻž āĻāĻĒāϞā§āĻĄ āĻāϰā§āύ
āĻāĻĒāύāĻžāϰ Objective-C / Objective-C++ āϏā§āϰā§āϏ āĻāĻĄāĻŋāĻāϰ⧠āĻĒā§āϏā§āĻ āĻāϰā§āύ āĻ āĻĨāĻŦāĻž āĻāĻāĻāĻŋ `.m` / `.mm` āĻĢāĻžāĻāϞ āĻĄā§āϰā§āϝāĻžāĻ-āĻāύā§āĻĄ-āĻĄā§āϰāĻĒ āĻāϰā§āύāĨ¤ āĻĻā§āϰā§āϤ āĻā§āϞāĻŋāύāĻāĻĒā§āϰ āĻāύā§āϝ āĻāĻĒāύāĻŋ āĻšā§āĻĄāĻžāϰ āϏā§āύāĻŋāĻĒā§āĻāĻ āĻĒā§āϏā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
⧍. āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ āĻāĻžāϞāĻžāύ
**āĻĢāϰāĻŽā§āϝāĻžāĻ** āĻŦāĻžāĻāύ⧠āĻā§āϞāĻŋāĻ āĻāϰā§āύāĨ¤ āĻāĻĒāύāĻžāϰ āĻā§āĻĄ āĻāĻāĻāĻŋ āϏā§āϰāĻā§āώāĻŋāϤ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻā§ āĻĒāĻžāĻ āĻžāύ⧠āĻšāϝāĻŧ āϝā§āĻāĻžāύ⧠clang-format āĻāĻāĻāĻŋ Objective-C āϏā§āĻāĻžāĻāϞ āĻĒā§āϰā§āĻĢāĻžāĻāϞ āύāĻŋāϝāĻŧā§ āĻāϞā§āĨ¤ āĻĢāϰāĻŽā§āϝāĻžāĻ āĻāϰāĻž āĻĢāϞāĻžāĻĢāϞ āϏā§āĻā§āύā§āĻĄā§āϰ āĻŽāϧā§āϝ⧠āĻĢā§āϰāϤ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧāĨ¤
ā§Š. āĻĒāϰā§āϝāĻžāϞā§āĻāύāĻž, āĻāĻĒāĻŋ āĻāĻŦāĻ āĻāĻŽāĻŋāĻ āĻāϰā§āύ
āĻāĻāĻāĻĒā§āĻ āĻĒāϰāĻŋāĻĻāϰā§āĻļāύ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āĻāĻāĻŋāĻā§ Xcode āĻŦāĻž āĻāĻĒāύāĻžāϰ āĻāĻĄāĻŋāĻāϰ⧠āĻĢāĻŋāϰ⧠āĻāĻĒāĻŋ āĻāϰā§āύāĨ¤ āĻāĻĒāύāĻžāϰ āĻĄāĻŋāĻĢāĻā§āϞ⧠āĻšā§āϝāĻŧāĻžāĻāĻāϏā§āĻĒā§āϏā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āϞāĻāĻŋāĻā§āϰ āĻāĻĒāϰ āĻĢā§āĻāĻžāϏ āϰāĻžāĻāϤ⧠āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻĢāĻžāĻāϞ āĻāĻŽāĻŋāĻ āĻāϰā§āύāĨ¤
āĻĒā§āϰāϝā§āĻā§āϤāĻŋāĻāϤ āĻŦāĻŋāĻŦāϰāĻŖ
āϏāĻŽāϰā§āĻĨāĻŋāϤ āĻāύāĻĒā§āĻ
āĻĻā§āύāύā§āĻĻāĻŋāύ Objective-C / Objective-C++ āĻĄā§āĻā§āϞāĻĒāĻŽā§āύā§āĻā§āϰ āĻāύā§āϝ āϤā§āϰāĻŋāĨ¤
| āϧāϰāύ | āĻāĻĻāĻžāĻšāϰāĻŖ | āύā§āĻ |
|---|---|---|
| .m āϏā§āϰā§āϏ āĻĢāĻžāĻāϞ | āĻāĻŋāĻ āĻāύā§āĻā§āϰā§āϞāĻžāϰ, āĻŽāĻĄā§āϞ, āĻŽā§āϝāĻžāύā§āĻāĻžāϰ | āĻāĻĒāϞā§āĻĄ āĻāĻŦāĻ āĻĒā§āϏā§āĻā§āϰ āĻāύā§āϝ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϏāĻŽāϰā§āĻĨāĻŋāϤāĨ¤ |
| .mm Objective-C++ āĻĢāĻžāĻāϞ | C++ āĻāĻŦāĻ Cocoa API āĻŦā§āϰāĻŋāĻāĻŋāĻ | clang-format-āĻāϰ Objective-C++ āϏāĻžāĻĒā§āϰā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĢāϰāĻŽā§āϝāĻžāĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ |
| āĻšā§āĻĄāĻžāϰ āϏā§āύāĻŋāĻĒā§āĻ | @interface āĻŦā§āϞāĻ, āĻĒā§āϰā§āĻā§āĻāϞ, āĻā§āϝāĻžāĻāĻžāĻāϰāĻŋ | āĻā§āϞāĻŋāύāĻāĻĒā§āϰ āĻāύā§āϝ āĻšā§āĻĄāĻžāϰ āĻā§āĻĄ āϏāϰāĻžāϏāϰāĻŋ āĻāĻĄāĻŋāĻāϰ⧠āĻĒā§āϏā§āĻ āĻāϰā§āύ (āĻĢāĻžāĻāϞ āĻāĻĒāϞā§āĻĄ `.m` / `.mm` āĻāĻļāĻž āĻāϰā§)āĨ¤ |
āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ āĻāĻā§āĻāĻŋāύ
āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ āĻāĻāĻāĻŋ āϏā§āϰāĻā§āώāĻŋāϤ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§ clang-format-āĻ āĻĄā§āϞāĻŋāĻā§āĻ āĻāϰā§āĨ¤
| āĻĻāĻŋāĻ | āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ |
|---|---|
| āĻāĻā§āĻāĻŋāύ | LLVM clang-format (Objective-C / Objective-C++) |
| āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻļāύ āĻŽāĻĄā§āϞ | āĻāĻāĻāĻŋ āĻĄā§āĻĄāĻŋāĻā§āĻā§āĻĄ `/api/objectivec-formatter` āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϏāĻžāϰā§āĻāĻžāϰ-āĻŦā§āϝāĻžāĻāĻĄ |
| āĻāĻžāĻāĻŽāĻāĻāĻ | āĻĒā§āϰāϤāĻŋ āĻ āύā§āϰā§āϧ⧠~25 āϏā§āĻā§āύā§āĻĄ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻāĻžāĻāĻŽāĻāĻāĻ |
| āϰāĻŋāĻĢāϰāĻŽā§āϝāĻžāĻ āϏā§āĻā§āĻĒ | āĻšā§āϝāĻŧāĻžāĻāĻāϏā§āĻĒā§āϏ, āĻāύā§āĻĄā§āύā§āĻā§āĻļāύ, āĻŦā§āϰā§āϏā§āϏ, āĻāĻŋāĻā§ āĻāĻŽā§āĻĒā§āϰā§āĻ āϞā§āĻāĻāĻ |
| āϏā§āĻŽāĻžāύā§āĻāĻŋāĻā§āϏ | āĻā§āĻĄā§āϰ āĻāĻāϰāĻŖ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻšāϝāĻŧ āύāĻžâāĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϞā§āĻāĻāĻ āϏāĻžāĻŽāĻā§āĻāϏā§āϝ āĻāϰāĻž āĻšāϝāĻŧ |
āϏā§āĻāĻžāĻāϞ āĻ āϞā§āĻāĻāĻ
āĻā§āĻĄ āĻāĻāĻāĻŋ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ clang-format āϏā§āĻāĻžāĻāϞ āĻĒā§āϰā§āĻĢāĻžāĻāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĒā§āϰāĻŋāύā§āĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
| āĻŦāĻŋāĻāĻžāĻ | āĻā§ āύāϰāĻŽāĻžāϞāĻžāĻāĻāĻĄ āĻšāϝāĻŧ? | āĻāĻāĻŋ āĻā§āύ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ |
|---|---|---|
| āĻŽā§āĻĨāĻĄ āϏāĻŋāĻāύā§āĻāĻžāϰ | `-` āĻāϰ āĻāĻžāϰāĻĒāĻžāĻļā§āϰ āϏā§āĻĒā§āϏāĻŋāĻ, āϰāĻŋāĻāĻžāϰā§āύ āĻāĻžāĻāĻĒ, āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻāĻŦāĻ āĻĒāϝāĻŧā§āύā§āĻāĻžāϰ | āĻšā§āĻĄāĻžāϰ āĻāĻŦāĻ āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻā§āĻļāύ⧠āĻŽā§āĻĨāĻĄ āĻĄāĻŋāĻā§āϞāĻžāϰā§āĻļāύ āϏā§āĻā§āϝāĻžāύ āĻāϰāĻž āϏāĻšāĻ āĻāϰ⧠āϤā§āϞā§āĨ¤ |
| āĻŽā§āϏā§āĻ āϏā§āύā§āĻĄ | āĻāĻŽāĻžāϰ āĻĒāϰ⧠āϏā§āĻĒā§āϏ, āĻā§āϞāύā§āϰ āĻāĻžāϰāĻĒāĻžāĻļā§ āĻāĻŦāĻ āύā§āϏā§āĻā§āĻĄ āĻāϞāĻā§āϞāĻŋāϤ⧠| āĻāĻā§āϰāĻāĻžāĻŦā§ āύā§āϏā§āĻā§āĻĄ `-[obj doSomething:withOption:]` āĻāϞāĻā§āϞāĻŋāϰ āĻĒāĻžāĻ āϝā§āĻā§āϝāϤāĻž āĻāύā§āύāϤ āĻāϰā§āĨ¤ |
| āĻŦā§āϰā§āϏ āĻ āĻāύā§āĻā§āϰā§āϞ-āĻĢā§āϞ⧠| `@interface`, `@implementation`, `if`, `for`, `while` āĻāϰ āĻāύā§āϝ āĻŦā§āϰā§āϏ āĻĒā§āϞā§āϏāĻŽā§āύā§āĻ | āĻĢāĻžāĻāϞ āĻāĻŦāĻ āĻ āĻŦāĻĻāĻžāύāĻāĻžāϰā§āĻĻā§āϰ āĻŽāϧā§āϝ⧠āϏā§āĻāĻžāĻāϞ āĻĄā§āϰāĻŋāĻĢā§āĻ āĻĒā§āϰāϤāĻŋāϰā§āϧ āĻāϰā§āĨ¤ |
| āĻāĻŽā§āĻĒā§āϰā§āĻ | `#import` āĻāĻŦāĻ `#include` āĻāϰ āĻāύā§āϝ āĻā§āϰā§āĻĒāĻŋāĻ āĻāĻŦāĻ āϏā§āĻĒā§āϏāĻŋāĻ | āĻĢāĻžāĻāϞā§āϰ āĻļā§āϰā§āώ āĻŦāĻŋāĻāĻžāĻāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻĒāĻžāĻāĻŋ āϰāĻžāĻā§ āĻāĻŦāĻ āĻŽāĻžāϰā§āĻ āĻāύāĻĢā§āϞāĻŋāĻā§āĻ āĻšā§āϰāĻžāϏ āĻāϰā§āĨ¤ |
| āĻāύā§āĻĄā§āύā§āĻā§āĻļāύ āĻ āĻ ā§āϝāĻžāϞāĻžāĻāύāĻŽā§āύā§āĻ | āĻŦā§āϞāĻ, āϏā§āĻāĻ āĻāĻŦāĻ āύā§āϏā§āĻā§āĻĄ āϏā§āĻā§āĻĒā§āϰ āĻāύā§āϝ āĻ āĻāĻŋāύā§āύ āĻāύā§āĻĄā§āύā§āĻā§āĻļāύ | āĻĻā§āϰā§āϤ āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞ āĻāĻĄāĻŋāĻ āĻĨā§āĻā§ āĻā§āϞ āĻ ā§āϝāĻžāϞāĻžāĻāύāĻŽā§āύā§āĻ āĻĻā§āϰ āĻāϰā§āĨ¤ |
āϏā§āĻŽāĻž āĻ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ
āĻāĻĒāύāĻžāϰ āĻŦā§āϰāĻžāĻāĻāĻžāϰ āĻĢā§āϰāĻŋāĻ āύāĻž āĻāϰ⧠āĻŦāĻžāϏā§āϤāĻŦ-āĻŦāĻŋāĻļā§āĻŦā§āϰ Objective-C āĻ ā§āϝāĻžāĻĒ āĻāĻŦāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϰ āĻāύā§āϝ āĻāĻāĻžāϰāϝā§āĻā§āϤāĨ¤
| āĻāύāĻĒā§āĻ āĻāĻžāĻāĻĒ | āĻāύā§āĻŽāĻžāύāĻŋāĻ āϏā§āĻŽāĻž | āύā§āĻ |
|---|---|---|
| āĻĒā§āϏā§āĻ āĻāϰāĻž āϏā§āϰā§āϏ | ~2 MB āĻā§āĻā§āϏāĻ | āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§ āĻĒāĻžāĻ āĻžāύā§āϰ āĻāĻā§ āĻāĻ ā§āϰ āϏā§āĻŽāĻž āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ |
| āĻāĻĒāϞā§āĻĄ āĻāϰāĻž āĻĢāĻžāĻāϞ | ~ā§Ģ āĻŽā§āĻāĻžāĻŦāĻžāĻāĻ | āĻā§āϞā§āϰ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž `maxFileSizeBytes` āĻĻā§āĻŦāĻžāϰāĻž āϏā§āĻŽāĻžāĻŦāĻĻā§āϧāĨ¤ |
| āϏāĻžāϧāĻžāϰāĻŖ āĻŦāĻŋāϞāĻŽā§āĻŦ | < ā§§-⧍ āϏā§āĻā§āύā§āĻĄ | āĻĢāĻžāĻāϞā§āϰ āĻāĻāĻžāϰ, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻŦāĻŋāϞāĻŽā§āĻŦ āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰ āϞā§āĻĄā§āϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§āĨ¤ |
| āĻŦā§āϝāϰā§āĻĨāϤāĻžāϰ āϧāϰāύ | āĻāĻžāĻāĻŽāĻāĻāĻ / āϤā§āϰā§āĻāĻŋ āĻŦāĻžāϰā§āϤāĻž | UI āĻā§āϞāĻŋāϝāĻŧā§ āύāĻž āϰā§āĻā§ āϤā§āϰā§āĻāĻŋāĻā§āϞāĻŋ āĻĒāϰāĻŋāώā§āĻāĻžāϰāĻāĻžāĻŦā§ āĻĻā§āĻāĻžāύ⧠āĻšāϝāĻŧāĨ¤ |
āĻā§āĻĒāύā§āϝāĻŧāϤāĻž āĻŽāĻĄā§āϞ
āϏāĻžāϰā§āĻāĻžāϰ-āĻŦā§āϝāĻžāĻāĻĄ, āĻā§āώāĻŖāϏā§āĻĨāĻžāϝāĻŧā§ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāϰāĻŖ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝāĨ¤
| āĻĻāĻŋāĻ | āĻāĻāϰāĻŖ |
|---|---|
| āĻĒāϰāĻŋāĻŦāĻšāύ | āĻā§āĻĄ HTTPS āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻāĻāĻŋ āϏā§āϰāĻā§āώāĻŋāϤ āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻā§ āĻĒā§āϰā§āϰāĻŖ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ |
| āϏāĻāϰāĻā§āώāĻŖ | āĻā§āώāĻŖāϏā§āĻĨāĻžāϝāĻŧā§ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻĻā§āĻĻā§āĻļā§āϝ: āĻāύāĻĒā§āĻ āĻŽā§āĻŽāϰāĻŋāϤ⧠āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻĻā§āϰā§āĻāĻŽā§āϝāĻŧāĻžāĻĻā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāϝāĻŧ āύāĻžāĨ¤ |
| āĻā§āĻĒāύ āϤāĻĨā§āϝ | āĻāĻĒāύāĻžāϰ āĻāĻāĻŋāϤ API āĻā§, āĻā§āĻā§āύ, āĻŦāĻž āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āĻā§āϰā§āĻĄā§āύāĻļāĻŋāϝāĻŧāĻžāϞ āϝā§āĻā§āύ⧠āĻ āύāϞāĻžāĻāύ āĻā§āϞ⧠āĻĒā§āϏā§āĻ āĻāϰāĻž āĻāĻĄāĻŧāĻžāύā§āĨ¤ |
| āϏā§āϰāĻž āĻ āύā§āĻļā§āϞāύ | āĻ -āϏāĻāĻŦā§āĻĻāύāĻļā§āϞ āĻĢāĻžāĻāϞ āĻāĻŦāĻ āĻĻā§āϰā§āϤ āĻā§āϞāĻŋāύāĻāĻĒā§āϰ āĻāύā§āϝ āĻāĻ āĻā§āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ; CI āĻāĻŦāĻ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ āĻāĻĒāύāĻžāϰ āύāĻŋāĻāϏā§āĻŦ āĻ āĻŦāĻāĻžāĻ āĻžāĻŽā§āϰ āĻŽāϧā§āϝ⧠āϰāĻžāĻā§āύāĨ¤ |
āĻāĻŽāĻžāύā§āĻĄ-āϞāĻžāĻāύ clang-format āĻ āĻŦāĻā§āĻā§āĻāĻŋāĻ-āϏāĻŋ āĻāϰ āĻāύā§āϝ
āĻĻā§āύāύā§āĻĻāĻŋāύ āĻāύā§āύāϝāĻŧāύ āĻāĻŦāĻ CI āĻāϰ āĻāύā§āϝ, āĻāĻĒāύāĻžāϰ āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻā§āϞāĻā§āĻāύ⧠clang-format āĻšāϞ āĻ āĻŦāĻā§āĻā§āĻāĻŋāĻ-āϏāĻŋ āĻā§āĻĄ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āϰāĻžāĻāĻžāϰ āĻā§āϝāĻžāύā§āύāĻŋāĻāĻžāϞ āĻāĻĒāĻžāϝāĻŧāĨ¤
macOS / đ§ Linux
āĻāĻāĻāĻŋ `.m` āĻĢāĻžāĻāϞ āϏā§āĻāĻžāύ⧠āĻĢāϰāĻŽā§āϝāĻžāĻ āĻāϰā§āύ
clang-format -i MyViewController.māĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āϏā§āĻāĻžāĻāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĄāĻŋāϏā§āĻā§ āĻĢāĻžāĻāϞāĻāĻŋ āĻĒā§āύāϰāĻžāϝāĻŧ āϞāĻŋāĻā§ (āϝā§āĻŽāύ, `.clang-format` āĻĨā§āĻā§)āĨ¤
āĻĢāĻžāĻāϞ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āύāĻž āĻāϰ⧠āĻĢāϰāĻŽā§āϝāĻžāĻ āĻāϰāĻž āĻāĻāĻāĻĒā§āĻ āĻĒā§āϰāĻŋāĻāĻŋāĻ āĻāϰā§āύ
clang-format MyViewController.māĻĢāϰāĻŽā§āϝāĻžāĻ āĻāϰāĻž āĻā§āĻĄ stdout āĻ āĻĒā§āϰāĻŋāύā§āĻ āĻāϰ⧠āϝāĻžāϤ⧠āĻāĻĒāύāĻŋ āĻĒā§āϰāĻĨāĻŽā§ diff āĻĒāϰā§āϝāĻžāϞā§āĻāύāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻāĻāĻŋ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āϏāĻŽāϏā§āϤ āĻ āĻŦāĻā§āĻā§āĻāĻŋāĻ-āϏāĻŋ āϏā§āϰā§āϏ āĻĢāϰāĻŽā§āϝāĻžāĻ āĻāϰā§āύ
find . -name "*.m" -o -name "*.mm" | xargs clang-format -iāĻāĻĒāύāĻžāϰ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻ āĻŦāĻā§āĻā§āĻāĻŋāĻ-āϏāĻŋ / āĻ āĻŦāĻā§āĻā§āĻāĻŋāĻ-āϏāĻŋ++ āĻā§āĻĄāĻŦā§āϏ āĻā§āĻĄāĻŧā§ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§āĨ¤
Windows
āĻāĻāĻāĻŋ āĻšā§āĻĄāĻžāϰ āĻŦāĻž āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻā§āĻļāύ āĻĢāĻžāĻāϞ āĻĢāϰāĻŽā§āϝāĻžāĻ āĻāϰā§āύ
clang-format.exe -i MyClass.hāĻāĻĒāύāĻžāϰ āύāĻŋāϰā§āĻŦāĻžāĻāĻŋāϤ clang-format āϏā§āĻāĻžāĻāϞ āĻĻāĻŋāϝāĻŧā§ āĻšā§āĻĄāĻžāϰāĻāĻŋ āϏā§āĻāĻžāύ⧠āĻāĻĒāĻĄā§āĻ āĻāϰā§āĨ¤
āĻāĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§āϰ āĻ āĻāĻļ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻžāϞāĻžāύ
forfiles /S /M *.m /C "cmd /c clang-format.exe -i @file"āĻāĻāĻāĻŋ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠āĻ āĻŦāĻā§āĻā§āĻāĻŋāĻ-āϏāĻŋ āϏā§āϰā§āϏā§āϰ āĻāύā§āϝ āϏāĻšāĻ āĻŦā§āϝāĻžāĻ āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻāĨ¤
āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻā§āώā§āϤā§āϰ
iOS / macOS āĻ ā§āϝāĻžāĻĒ āĻĄā§āĻā§āϞāĻĒāĻŽā§āύā§āĻ
āύāϤā§āύ Swift āĻŽāĻĄāĻŋāĻāϞāĻā§āϞāĻŋāϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻĻā§āϰā§āĻāϏā§āĻĨāĻžāϝāĻŧā§ Objective-C āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§āϞāĻŋ āϰāĻā§āώāĻŖāĻžāĻŦā§āĻā§āώāĻŖāϝā§āĻā§āϝ āϰāĻžāĻā§āύāĨ¤
- āĻŦāĻĄāĻŧ āϰāĻŋāĻĢā§āϝāĻžāĻā§āĻāϰā§āϰ āĻāĻā§ āϞāĻŋāĻā§āϏāĻŋ āĻāĻŋāĻ āĻāύā§āĻā§āϰā§āϞāĻžāϰ āĻāĻŦāĻ āĻŽāĻĄā§āϞ āĻ āĻŦāĻā§āĻā§āĻāĻā§āϞāĻŋ āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻāϰā§āύāĨ¤
- āϏāĻŋāύāĻŋāϝāĻŧāϰ āĻāĻŦāĻ āĻā§āύāĻŋāϝāĻŧāϰ Objective-C āĻĄā§āĻā§āϞāĻĒāĻžāϰāĻĻā§āϰ āĻŽāĻŋāĻļā§āϰ āĻĻāϞā§āϰ āĻŽāϧā§āϝ⧠āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āϏā§āĻāĻžāĻāϞ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§āύāĨ¤
- āĻĒā§āϞ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻā§ āĻļā§āϰāĻā§āϞāĻĒā§āϰā§āĻŖ āĻĄāĻŋāĻĢ āĻāĻŽāĻžāϤ⧠āĻāĻŽāĻŋāĻā§āϰ āĻāĻā§ āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ āĻāĻžāϞāĻžāύāĨ¤
@interface MyViewController : UIViewController
@property(nonatomic, strong) NSString *titleText;
@end
@implementation MyViewController
- (void)viewDidLoad {
[super viewDidLoad];NSLog(@"Loaded: %@",_titleText);}
@end
āĻā§āĻĄ āϰāĻŋāĻāĻŋāĻ āĻ āĻĒā§āϞ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ āĻĒā§āϰāϏā§āϤā§āϤāĻŋ
āϰāĻŋāĻāĻŋāĻ āĻāϞā§āĻāύāĻžāĻā§ āϝā§āĻā§āϤāĻŋāϤ⧠āĻā§āύā§āĻĻā§āϰā§āĻā§āϤ āϰāĻžāĻāϤ⧠āĻĒā§āϰāĻŋ-āĻĢā§āϞāĻžāĻāĻ āϧāĻžāĻĒ āĻšāĻŋāϏāĻžāĻŦā§ āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤
- PR āĻā§āϞāĻžāϰ āĻāĻā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻĢāĻžāĻāϞāĻā§āϞāĻŋāϤ⧠āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ āĻāĻžāϞāĻŋāϝāĻŧā§ āĻšā§āϝāĻŧāĻžāĻāĻāϏā§āĻĒā§āϏ āĻļā§āϰāĻā§āϞ āĻĻā§āϰ āĻāϰā§āύāĨ¤
- āĻŦā§āϰā§āϏ āϏā§āĻāĻžāĻāϞ āĻāĻŦāĻ āĻāύā§āĻĄā§āύā§āĻā§āĻļāύ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻāϰ⧠āĻĄāĻŋāĻĢāĻā§āϞāĻŋ āĻā§āĻ āĻāĻŦāĻ āĻĒāϰā§āϝāĻžāϞā§āĻāύāĻž āĻāϰāϤ⧠āϏāĻšāĻ āĻāϰā§āύāĨ¤
- āĻāĻāĻāĻŋ āĻāĻāĻ clang-format āĻĒā§āϰā§āĻĢāĻžāĻāϞā§āϰ āĻāĻžāĻā§ āĻ āϰā§āĻĒāĻŖ āĻāϰ⧠āϏā§āĻāĻžāĻāϞ āĻŦāĻŋāϤāϰā§āĻ āĻšā§āϰāĻžāϏ āĻāϰā§āύāĨ¤
// āϰāĻŋāĻāĻŋāĻāϰ āĻāĻā§: āĻ
āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āϏā§āĻĒā§āϏāĻŋāĻ
if(showAlert){[self showAlertWithMessage:message];}
// āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻāϝāĻŧā§āϰ āĻĒāϰā§
if (showAlert) {
[self showAlertWithMessage:message];
}
â Frequently Asked Questions
đ ī¸āĻšā§āĻĄā§āϰ āύāĻŋāĻā§ āĻā§āύ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ āĻāĻā§āĻāĻŋāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ?
đāĻā§āύ āĻĢāĻžāĻāϞ āĻāĻžāĻāĻĒ āϏāĻŽāϰā§āĻĨāĻŋāϤ?
đāĻāĻŽāĻŋ āĻāĻŋ UI āĻĨā§āĻā§ āĻāύā§āĻĄā§āύā§āĻā§āĻļāύ āĻŦāĻž āϏāϰā§āĻŦā§āĻā§āĻ āϞāĻžāĻāύ āĻĒā§āϰāϏā§āĻĨ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ?
đāĻāĻŽāĻžāϰ āϏā§āϰā§āϏ āĻā§āĻĄ āϏāĻāϰāĻā§āώāĻŋāϤ āĻŦāĻž āϞāĻ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŋ?
HTTPS-āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻāĻāĻŋ āϏā§āϰāĻā§āώāĻŋāϤ āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻā§ āĻĒā§āϰā§āϰāĻŖ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻ
āϏā§āĻĨāĻžāϝāĻŧā§ āĻāύāĻĒā§āĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻāĻŋ āĻĻā§āϰā§āĻāĻŽā§āϝāĻŧāĻžāĻĻā§ āϏāĻāϰāĻā§āώāĻŖā§āϰ āĻāĻĻā§āĻĻā§āĻļā§āϝ⧠āύāϝāĻŧāĨ¤ āϤāĻŦā§āĻ, āĻāĻāĻāĻŋ āϏā§āϰāĻž āĻ
āύā§āĻļā§āϞāύ āĻšāĻŋāϏāĻžāĻŦā§, āϝā§āĻā§āύ⧠āĻ
āύāϞāĻžāĻāύ āĻā§āϞ⧠āĻā§āĻĒāύā§āϝāĻŧāϤāĻž, āĻā§āϰā§āĻĄā§āύāĻļāĻŋāϝāĻŧāĻžāϞ āĻŦāĻž āĻ
āϤā§āϝāύā§āϤ āϏāĻāĻŦā§āĻĻāύāĻļā§āϞ āĻŦā§āϝāĻŦāϏāĻžāϝāĻŧāĻŋāĻ āϝā§āĻā§āϤāĻŋ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰāĻž āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āĻāϞā§āύāĨ¤â ī¸āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ āĻāĻŋ āĻāĻāύāĻ āĻāĻŽāĻžāϰ āĻā§āĻĄā§āϰ āĻāĻāϰāĻŖ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§?
đāĻāĻŽāĻŋ āĻāĻāύ āĻāĻ āĻāϝāĻŧā§āĻŦ āĻā§āϞ āĻŦāύāĻžāĻŽ āϏā§āĻĨāĻžāύā§āϝāĻŧ clang-format āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦ?
Pro Tips
āĻŦā§āϰā§āϏ āĻĒā§āϞā§āϏāĻŽā§āύā§āĻā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻāĻāϰāĻŖā§ āĻĢā§āĻāĻžāϏ āϰāĻžāĻāϤ⧠āĻāĻŽāĻŋāĻ āĻāϰāĻžāϰ āĻāĻā§ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ āĻāĻžāϞāĻžāύāĨ¤
āĻāĻĒāύāĻžāϰ āϏāĻŋāĻāĻ-āϤ⧠(āĻŦāĻž āĻĒā§āϰāĻŋ-āĻāĻŽāĻŋāĻ āĻšā§āĻ) āĻāĻāĻāĻŋ `clang-format` āϧāĻžāĻĒ āϝā§āĻ āĻāϰā§āύ āϝāĻžāϤ⧠āϏā§āĻāĻžāĻāϞ āĻāϏā§āϝā§āĻā§āϞāĻŋ āĻāĻāύāĻ āĻā§āĻĄ āϰāĻŋāĻāĻŋāĻāϤ⧠āύāĻž āĻĒā§āĻāĻāĻžāϝāĻŧāĨ¤
āĻāĻŽā§āĻĒā§āϰā§āĻāĻā§āϞāĻŋ āϏāĻžāĻāĻžāύ⧠āĻāĻŦāĻ āĻā§āϰā§āĻĒ āĻāϰāĻž āϰāĻžāĻā§āύ; āĻāĻāĻŋ āĻāĻāĻ āĻĢāĻžāĻāϞ⧠āĻāĻāĻžāϧāĻŋāĻ āϏāĻšāĻāϰā§āĻŽā§ āĻāĻžāĻ āĻāϰāϞ⧠āĻŽāĻžāϰā§āĻ āĻāύāĻĢā§āϞāĻŋāĻā§āĻ āĻāĻŽāĻžāϝāĻŧāĨ¤
āĻā§āύ⧠āĻ āύāϞāĻžāĻāύ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ⧠āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āϏāĻŋāĻā§āϰā§āĻ āĻŦāĻž āĻā§āĻā§āύ āĻĒā§āϏā§āĻ āĻāϰāĻž āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āĻāϞā§āύāĨ¤ āϏāĻāĻŦā§āĻĻāύāĻļā§āϞ āĻā§āĻĄā§āϰ āĻāύā§āϝ, āĻāĻĒāύāĻžāϰ āύāĻŋāĻāϏā§āĻŦ āĻāύāĻĢā§āϰāĻžāϏā§āĻā§āϰāĻžāĻāĻāĻžāϰā§āϰ āĻŽāϧā§āϝ⧠āϏā§āĻĨāĻžāύā§āϝāĻŧāĻāĻžāĻŦā§ clang-format āĻāĻžāϞāĻžāύāĨ¤
Additional Resources
Other Tools
- āϏāĻŋāĻāϏāĻāϏ āϏā§āύā§āĻĻāϰā§āϝāĻŦāϰā§āϧāĻ
- āĻāĻāĻāĻāĻŋāĻāĻŽāĻāϞ āϏā§āύā§āĻĻāϰā§āϝāĻŦāϰā§āϧāĻ
- āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻ āϏā§āύā§āĻĻāϰā§āϝāĻŦāϰā§āϧāĻ
- āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ āϏā§āύā§āĻĻāϰā§āϝāĻŦāϰā§āϧāĻ
- āϰāĻ āύāĻŋāϰā§āĻŦāĻžāĻāĻ
- āϏā§āĻĒā§āϰāĻžāĻāĻ āĻāĻā§āϏāĻā§āϰā§āϝāĻžāĻā§āĻāϰ
- āĻŦā§āϏā§Ŧā§Ē āĻĄāĻŋāĻā§āĻĄāĻžāϰ
- āĻŦā§āϏā§Ŧā§Ē āĻāύāĻā§āĻĄāĻžāϰ
- āϏāĻŋ-āĻļāĻžāϰā§āĻĒ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āϏāĻŋāĻāϏāĻāĻŋ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- Dockerfile Formatter
- āĻāϞāĻŽ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āĻāĻāύāĻāĻŋ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āĻā§ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āĻā§āϰāĻžāĻĢāĻāĻŋāĻāĻāϞ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āĻāĻāĻāϏāĻŋāĻāϞ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āĻāĻāĻāύāĻāĻ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āĻā§āϏāύ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āϞā§āϝāĻžāĻā§āĻ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āĻŽāĻžāϰā§āĻāĻĄāĻžāĻāύ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- Php Formatter
- āĻĒā§āϰā§āĻā§ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āĻĒāĻžāĻāĻĨāύ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āϰā§āĻŦāĻŋ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āϰāĻžāϏā§āĻ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āϏā§āĻāĻžāϞāĻž āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āĻļā§āϞ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āĻāϏāĻāĻŋāĻāĻāϞ āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- SVG āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- Swift āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- TOML āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- Typescript Formatter
- XML āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- YAML āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- Yarn āĻĢāϰāĻŽā§āϝāĻžāĻāĻžāϰ
- āϏāĻŋāĻāϏāĻāϏ āĻŽāĻŋāύāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ
- Html Minifier
- Javascript Minifier
- āĻā§āϏāύ āĻŽāĻŋāύāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ
- XML āĻŽāĻŋāύāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ
- āĻāĻāĻāĻāĻŋāĻāĻŋāĻĒāĻŋ āĻšā§āĻĄāĻžāϰ āĻāĻŋāĻāϝāĻŧāĻžāϰ
- āĻĒāĻŋāĻĄāĻŋāĻāĻĢ āĻĨā§āĻā§ āĻā§āĻā§āϏāĻ
- āϰā§āĻā§āĻā§āϏ āĻā§āϏā§āĻāĻžāϰ
- āϏāĻžāϰā§āĻĒ āϰā§āϝāĻžāĻāĻ āĻā§āĻāĻžāϰ
- Whois āϞā§āĻāĻāĻĒ