The clang-format homepage
Score6.6
Rank#12 of 34
Free planNo
Runs onBrowser extension, Linux, macOS, Windows

Summary

clang-format is a free, open-source set of tools for formatting source code, available as a standalone command-line program and through editor integrations. Its standalone tool formats C, C++, Java, JavaScript, JSON, Objective-C, Protocol Buffers, C#, TableGen, TextProto, and Verilog. You can choose built-in LLVM, GNU, Google, Chromium, Microsoft, Mozilla, or WebKit styles, or set project rules in a .clang-format or _clang-format file. For focused changes, it can format selected lines or byte ranges in one input file; git-clang-format targets lines changed in commits or staged changes, and clang-format-diff.py processes changed lines from unified diff output. A .clang-format-ignore file can exclude paths. Documented editor integrations include Vim, Emacs, BBEdit, CLion, Visual Studio, and Visual Studio Code. Source and pre-built binaries are listed for Windows, macOS, and Linux. The code is licensed under Apache 2.0 with LLVM exceptions.

Who it is for

It suits developers who want consistent source formatting from a standalone tool or editor integration. Its style presets and project-level configuration support teams with established formatting rules.

What is good

  • Supports a broad range of programming and text formats.
  • Includes seven built-in style presets.
  • Can target changed lines in Git workflows.
  • Editor integrations are documented for several editors.
  • Free and open source under Apache 2.0 with LLVM exceptions.

What to know first

  • Line- or byte-range formatting accepts only one input file.

Verdict

clang-format offers configurable formatting through a standalone tool and documented editor integrations. Its single-file limit for line- or byte-range formatting is worth noting for targeted edits.

Compared on code formatting tools

Free plan
Yesclang.llvm.org
Supported languages
C, C++, Java, JavaScript, JSON, Objective-C, Protocol Buffers, C#, TableGen, TextProto, Verilogclang.llvm.org
Supported platforms
Windows, macOS, Linuxclang.llvm.org
Editor integration
Yesclang.llvm.org
Ignore files
Yesclang.llvm.org
Changed-lines formatting
Yesclang.llvm.org
Library API
Yesclang.llvm.org
License model
open_sourceclang.llvm.org

Facts

Purpose
ClangFormat is a set of tools built on LibFormat for formatting source code, available as a standalone tool and through editor integrations.clang.llvm.org · 30 Sept 2026
Languages
The standalone tool formats C, C++, Java, JavaScript, JSON, Objective-C, Protobuf, and C# code.clang.llvm.org · 30 Sept 2026
Configuration
Formatting styles can be set with command-line options or project-level .clang-format or _clang-format files.clang.llvm.org · 30 Sept 2026
Style presets
Built-in style presets include LLVM, GNU, Google, Chromium, Microsoft, Mozilla, and WebKit.clang.llvm.org · 30 Sept 2026
Editor integrations
The documentation describes integrations for Vim, Emacs, BBEdit, CLion, Visual Studio, and Visual Studio Code.clang.llvm.org · 30 Sept 2026
Git workflow
The git-clang-format script can format lines changed in commits or staged changes.clang.llvm.org · 30 Sept 2026
Patch workflow
The clang-format-diff.py script reads unified diff output and reformats the changed lines.clang.llvm.org · 30 Sept 2026
Selective formatting
The command-line tool can format specified line or byte ranges in a single input file.clang.llvm.org · 30 Sept 2026
Ignore rules
A .clang-format-ignore file can contain path patterns for files that clang-format should skip.clang.llvm.org · 30 Sept 2026
Windows availability
The Clang build guide documents building Clang on Windows using Visual Studio.clang.llvm.org · 30 Sept 2026
Linux and macOS availability
The Clang guide describes building on Unix-like systems and says Clang is provided by major BSD and GNU/Linux distributions and is the default compiler for Mac OS X from Xcode 4.2.clang.llvm.org · 30 Sept 2026
License
The LLVM Project states that its code is licensed under the Apache 2.0 License with LLVM exceptions.llvm.org · 30 Sept 2026
Support
The Clang guide directs users who encounter problems to file bugs on the LLVM bug tracker.clang.llvm.org · 30 Sept 2026
Style configuration
Users can select built-in LLVM, GNU, Google, Chromium, Microsoft, Mozilla, and WebKit styles or configure formatting in a .clang-format file.clang.llvm.org · 30 Sept 2026
Git integration
The git-clang-format script can format lines changed in commits or staged changes.clang.llvm.org · 30 Sept 2026
Release verification
LLVM source packages and Git tags are signed by release managers, and the page provides keys for verification.releases.llvm.org · 30 Sept 2026
Distribution
The LLVM project provides source and pre-built binary downloads, with listed binaries including Windows, macOS, and Linux platforms.releases.llvm.org · 30 Sept 2026
Support and community
LLVM directs users to its Discourse forum and mailing lists, and announces new releases in its Announce category.releases.llvm.org · 30 Sept 2026
Limit
Formatting a line range or byte range can only be used with one input file.clang.llvm.org · 30 Sept 2026
Intended users
The documentation presents ClangFormat as a standalone tool and editor integration for source-code formatting workflows.clang.llvm.org · 30 Sept 2026

Best clang-format alternatives

See all 12

Where it ranks on Everything Xiaomi

Is clang-format yours?

Claim it for free: prove the domain, then correct facts, plans and screenshots. An editor reviews every change.

Sources