CLANG-FORMAT(1)

πŸ“¦
version 16.0.6 Β· 2 versions
, in debian bookworm

πŸ’… NAME πŸ’…

clang-format β€” the manual page for clang-format 16. Yes bestie, that's the whole name section, she's short and she knows it. πŸŽ€


✨ DESCRIPTION ✨

🌈 OVERVIEW

Okay so, clang-format is a tool to format C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C# code. That's it. That's the gig. Multilingual queen behavior, no cap. πŸ‘‘

Now here's how she actually acts, and this part is important so don't skim it:

  • If you give her no arguments at all, she formats the code from standard input and writes the result to standard output. Zero drama. 🫢
  • If <file>s are given, she reformats the files.
  • If -i is specified together with <file>s, the files get edited in-place. (Careful, bestie β€” in-place means the original is gone-gone. πŸ™ˆ)
  • Otherwise, the result is written to the standard output.

πŸŽ€ USAGE

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

πŸ› οΈ OPTIONS

πŸ”₯ Clang-format options

  • --Werror β€” if you set this, formatting warnings get promoted to full-on errors. Glow-up, but make it hostile. πŸ’€
  • --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. You can use it to enable formatting even when the configuration contains unknown (newer) options. > Use with caution, because this might lead to dramatically differing format depending on whether an option is supported or not. Yeah. She said what she said. ⚠️
  • --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 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 what's supported, bestie, memorize it or don't:
    • 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. Yes, this is how your editor knows where you were pointing. πŸ–±οΈ
  • --dry-run β€” if set, do not actually make the formatting changes. Just vibes. Just a peek. πŸ‘€
  • --dump-config β€” dump configuration options to stdout and exit. 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> β€” 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. Same girl, shorter name. ✨
  • --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 the 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. Not me being nosy, it's literally the feature. πŸ“

⭐ 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!! You ate. Periodt. πŸ¦‹πŸŒΈ

This lil masterpiece came to you from clang-format 16, dated October 2023. Go format something gorgeous, you main character. πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from