CLANG-FORMAT(1)

πŸ“¦
version 17.0.6 Β· 4 versions
, in debian trixie, ubuntu questing

πŸ’– NAME πŸ’–

okay bestie, welcome to clang-format β€” this is the manual page for clang-format 17 ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

OVERVIEW: it's a tool that formats C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C# code. the way it just… tidies your whole life up πŸ’…

So here's the vibe check on how it behaves, no cap:

  • If you pass no arguments at all, it formats the code coming in from standard input and writes the result straight to standard output.
  • If you give it <file>s, it reformats those files.
  • If -i is specified together with <file>s, the files get edited in-place πŸ‘€
  • Otherwise, the result just gets written to standard output.

USAGE:

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

πŸŽ€ OPTIONS πŸŽ€

✨ Clang-format options ✨

  • --Werror β€” if you set this, formatting warnings get promoted to full-on errors 😀
  • --Wno-error=<value> β€” if you set this, it won't error out on the specified warning type.
    • =unknown β€” if you set this, unknown format options are only warned about, not errored. This one lets you keep formatting even when your configuration contains unknown (newer) options. Use with caution, bestie, because 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 this isn't passed, the .clang-format file is searched relative to the current working directory when reading stdin. Unrecognized filenames get treated as C++. Here's what's 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 you're invoking clang-format from an editor integration πŸ–±οΈ
  • --dry-run β€” if you set this, it does not actually make the formatting changes (a little preview moment, iconic)
  • --dump-config β€” dumps configuration options to stdout and exits. Can be used with the -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't find the .clang-format file to use. Defaults to 'LLVM'. Use -fallback-style=none to skip formatting entirely.
  • --ferror-limit=<uint> β€” sets the maximum number of clang-format errors to emit before stopping (0 = no limit). Only used 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). You can format multiple ranges 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, it 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

okay that's the whole thing, you're soooo ready 🫢 this was clang-format 17, dated June 2025, and it's giving main character energy fr fr. go format something gorgeous bestie, mwah πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from