CLANG-FORMAT(1)

πŸ“¦
version 20.1.8 Β· 4 versions
, in ubuntu stonking

πŸ’– CLANG-FORMAT πŸ’–

okay bestie, sit DOWN, because this is the manual page for clang-format version 20 and it's about to become your whole personality 🫢


✨ NAME ✨

clang-format β€” manual page for clang-format 20. that's it, that's the name, no cap πŸ’…


🌸 DESCRIPTION 🌸

OVERVIEW: it's a tool to format C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C# code. literally a glow-up for your source files. ✨

so here's the vibe:

  • if you pass no arguments at all, it formats the code coming in from standard input and writes the result out to standard output. very demure, very stdin.
  • if you give it <file>s, it reformats the files.
  • if you ALSO throw -i in there together with <file>s, the files get edited in-place. no going back, it's committed, periodt πŸ’€
  • otherwise? the result just goes to standard output.

USAGE:

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

OPTIONS:

πŸ‘‘ Clang-format options: πŸ‘‘

  • --Werror β€” if set, it turns formatting warnings into ERRORS. spicy. πŸ”₯
  • --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. bestie, be careful, fr fr πŸ™ˆ
  • --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++. here's the supported list, no skipping: πŸŽ€
    • CSharp: .cs
    • Java: .java
    • JavaScript: .js .mjs .cjs .ts
    • Json: .json
    • Objective-C: .m .mm
    • Proto: .proto .protodevel
    • TableGen: .td
    • TextProto: .txtpb .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. main character editor energy 🧚
  • --dry-run β€” if set, do not actually make the formatting changes. it's giving window shopping πŸ’…
  • --dump-config β€” dump configuration options to stdout and exit. can be used with -style option.
  • --fail-on-incomplete-format β€” if set, fail with exit code 1 on incomplete format.
  • --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.
  • --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. she's chatty and we love that πŸ’œ

πŸ¦‹ 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, you ate it, you understood it, iconic behavior honestly 🌈⭐

this was clang-format 20, dated September 2026 β€” slay, see you in the next one, bye bestie πŸ’–πŸŽ€πŸ«Ά

πŸ“¦ where this page comes from