A highly configurable source code beautifier for C, C++, C#, Objective-C, D, Java, Pawn, and Vala.
Uncrustify is a source code beautifier that automatically formats code according to a customizable style configuration. It supports multiple programming languages including C, C++, C#, Java, and Objective-C, solving the problem of inconsistent code formatting across teams and projects.
Developers and teams working in C-family languages (C, C++, C#, Objective-C, D, Java, Pawn, Vala) who need to enforce consistent code style automatically.
Developers choose Uncrustify for its extreme configurability with 857 options, multi-language support, and proven reliability across various operating systems, making it a versatile tool for automated code formatting.
Code beautifier
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
With 857 configurable options for spacing, newlines, and alignment, it offers precise control over code style, as detailed in the README's feature breakdown with examples like sp_before_sparen and nl_if_brace.
It formats code in eight languages including C, C++, C#, and Java, making it versatile for multi-language projects, though the README notes some languages like Objective-C need patches.
Provides parsing dumps and step-by-step logs via options like -p and -L, helping developers troubleshoot formatting issues, as explained in the debugging section with example commands.
Tested on Linux, macOS, Windows, and others, with pre-compiled binaries available, ensuring consistent behavior across different development environments.
The README explicitly warns that it has bugs and should not be applied to entire codebases without verification, indicating potential reliability issues that require manual checking.
With 857 options, setting up and maintaining a config file is highly complex, often requiring third-party GUI tools or extensive manual tuning, as admitted in the configuration section.
While it has plugins for Vim and IntelliJ, setup is non-trivial and lacks native support in many modern IDEs, making it less convenient than integrated formatters like clang-format.