CLANG-FORMAT(1)

πŸ“¦
version 19.1.7 Β· 5 versions
, in debian bookworm, debian trixie

🌸 NAME 🌸

clang-format β€” bestie, it's the manual page for clang-format 19 πŸ’…


✨ DESCRIPTION ✨

OVERVIEW: it's a tool that formats C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C# code. yes, all of those. she's versatile like that πŸ‘‘

So here's the vibe check on how she behaves:

  • If you pass no arguments at all, she formats the code coming in from standard input and writes the result straight to standard output. 🫢
  • If you give her <file>s, she reformats those files.
  • If -i is in the mix together with <file>s, the files get edited in-place.
  • Otherwise, the result goes to standard output.

USAGE:

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

OPTIONS:


πŸŽ€ Clang-format options πŸŽ€

  • --Werror β€” if you set this, formatting warnings get promoted to errors. no more soft-launching your problems 😭
  • --Wno-error=<value> β€” if you set this, she won't error out on the specified warning type.
    • =unknown β€” if you set this, unknown format options are only warned about, not errored.

This is how you enable formatting even when your config is carrying unknown (newer) options. Use with caution, bestie β€” this might lead to dramatically differing format depending on whether an option is supported or not. πŸ’€

  • --assume-filename=<string> β€” sets the filename used to determine the language and to find the .clang-format file. Only used when reading from stdin. If you don't pass this, 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: .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. editor besties, this one's for you 🧚
  • --dry-run β€” if set, she does not actually make the formatting changes. just a lil preview moment πŸ‘€
  • --dump-config β€” dump configuration options to stdout and exit. can be used with the -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 when 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. nosy in the best way πŸ“

🌈 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.

okay that's the whole page, you ate that πŸ’œ this was clang-format 19, dated June 2025 β€” and yeah, she's lowkey iconic, no cap. go format something pretty, bestie πŸ¦‹βœ¨

πŸ“¦ where this page comes from