CLANG-FORMAT(1)

πŸ“¦
version 18.1.8 Β· 5 versions
, in debian trixie, ubuntu questing

πŸ’– NAME πŸ’–

clang-format β€” this is the manual page for clang-format 18, and bestie, it's literally the glow-up your source files have been begging for. πŸ‘‘


✨ DESCRIPTION ✨

OVERVIEW: A tool to format C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C# code.

Okay so here's the vibe. If you give it no arguments at all, it reads the code from standard input and writes the pretty version to standard output. Easy. If you hand it <file>s instead, it reformats those files. And if you pair -i with those <file>s, it edits them in-place (aka it actually commits to the transformation πŸ’…). Otherwise? Result goes to standard output.

USAGE:

clang-format [options] [@<file>] [<file> ...]

πŸŽ€ OPTIONS πŸŽ€

Clang-format options

  • --Werror β€” If set, changes formatting warnings to errors. No more "just a lil warning", it's giving full consequences now. 😭
  • --Wno-error=<value> β€” If set, don't error out on the specified warning type.
    • =unknown β€” If set, unknown format options are only warned about. This can be used to enable formatting, even if the configuration contains unknown (newer) options. Use with caution, as this might lead to dramatically differing format depending on an option being supported or not. 🚨
  • --assume-filename=<string> β€” Set the filename used to determine the language and to find the .clang-format file. Only used when reading from stdin. If this is not passed, the .clang-format file is searched relative to the current working directory when reading stdin. Unrecognized filenames are treated as C++. supported:
    • CSharp: .cs
    • Java: .java
    • JavaScript: .mjs, .js, .ts
    • Json: .json
    • Objective-C: .m, .mm
    • Proto: .proto, .protodevel
    • TableGen: .td
    • TextProto: .textpb, .pb.txt, .textproto, .asciipb
    • Verilog: .sv, .svh, .v, .vh
  • --cursor=<uint> β€” The position of the cursor when invoking clang-format from an editor integration. πŸ–±οΈ
  • --dry-run β€” If set, do not actually make the formatting changes. Just a little peek, no commitment. πŸ‘€
  • --dump-config β€” Dump configuration options to stdout and exit. Can be used with -style option.
  • --fallback-style=<string> β€” The name of the predefined style used as a fallback in case clang-format is invoked with -style=file, but can not find the .clang-format file to use. Defaults to 'LLVM'. Use -fallback-style=none to skip formatting. 🫢
  • --ferror-limit=<uint> β€” Set the maximum number of clang-format errors to emit before stopping (0 = no limit). Used only with --dry-run or -n.
  • --files=<filename> β€” A file containing a list of files to process, one per line. πŸ“
  • -i β€” Inplace edit <file>s, if specified. The real ones know. πŸ”₯
  • --length=<uint> β€” Format a range of this length (in bytes). Multiple ranges can be formatted by specifying several -offset and -length pairs. When only a single -offset is specified without -length, clang-format will format up to the end of the file. Can only be used with one input file.
  • --lines=<string> β€” <start line>:<end line> β€” format a range of lines (both 1-based). Multiple ranges can be formatted by specifying several -lines arguments. Can't be used with -offset and -length. Can only be used with one input file.
  • -n β€” Alias for --dry-run.
  • --offset=<uint> β€” Format a range starting at this byte offset. Multiple ranges can be formatted by specifying several -offset and -length pairs. Can only be used with one input file.
  • --output-replacements-xml β€” Output replacements as XML.
  • --qualifier-alignment=<string> β€” If set, overrides the qualifier alignment style determined by the QualifierAlignment style flag.
  • --sort-includes β€” If set, overrides the include sorting behavior determined by the SortIncludes style flag.
  • --style=<string> β€” Set coding style. <string> can be:
    1. A preset: LLVM, GNU, Google, Chromium, Microsoft, Mozilla, WebKit.
    2. 'file' to load style configuration from a .clang-format file in one of the parent directories of the source file (for stdin, see --assume-filename). If no .clang-format file is found, falls back to --fallback-style. --style=file is the default.
    3. 'file:<format_file_path>' to explicitly specify the configuration file.
    4. "{key: value, ...}" to set specific parameters, e.g.:
--style="{BasedOnStyle: llvm, IndentWidth: 8}"
  • --verbose β€” If set, shows the list of processed files. πŸ—£οΈ

Generic Options

  • --help β€” Display available options (--help-hidden for more).
  • --help-list β€” Display list of available options (--help-list-hidden for more).
  • --version β€” Display the version of this program.

and that's the whole page, bestie πŸ’– This was clang-format 18, documented in June 2025, and ngl you're gonna format so much code after this. Go off, icon. πŸ’…βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ«Ά

πŸ“¦ where this page comes from