A curated list of code formatters. Inspired by awesome-machine-learning.
Other awesome lists can be found in the [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) list.

If you want to contribute to this list (please do), send me a pull request or contact me [@rishirdua](https://www.twitter.com/rishirdua)


## Table of Contents

<!-- MarkdownTOC depth=4 -->
- [General Purpose](#general-purpose)
- [Language Specific](#language-specific)
  - [C/C++](#cc)
  - [Cobol](#cobol)
  - [CSS](#css)
  - [Fortran](#fortran)
  - [Haskell](#haskell)
  - [HTML](#html)
  - [Java](#java)
  - [JavaScript](#javascript)
  - [JSP](#jsp)
  - [.NET](#net)
  - [Perl](#perl)
  - [PHP](#php)
  - [PL/SQL](#plsql)
  - [Python](#python)
  - [Ruby](#ruby)
  - [Shell](#shell)
  - [VBS](#vbs)
  - [XML](#xml)

<!-- /MarkdownTOC -->

## General Purpose

* [Artistic Styler](http://astyle.sourceforge.net/) - Source code indenter, formatter, and beautifier for the C, C++, C# and Java programming languages.
* [Atom-Beautify](https://atom.io/packages/atom-beautify) - Beautify HTML, CSS, JavaScript, PHP, Python, Ruby, Java, C, C++, C#, Objective-C, CoffeeScript, TypeScript, Coldfusion, SQL, and more in Atom editor.
* [Prettier](https://prettier.io/) - An opinionated code formatter for JavaScript, Flow, TypeScript, Vue, JSON, CSS, Less, SCSS, GraphQL, and Markdown
* [Uncrustify](http://uncrustify.sourceforge.net/) - Beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA.
* [Unibeautify](https://unibeautify.com/) - Universal code beautifier with a GitHub app. Supports HTML, CSS, JavaScript, TypeScript, JSX, Vue, C++, Go, Objective-C, Java, Python, PHP, GraphQL, Markdown, and more.
* [clang-format](http://clang.llvm.org/docs/ClangFormat.html) - Automatic formatting for C, C++, Java, JavaScript, ObjectiveC and Protobuf.

## Language Specific

#### C/C++

* [BCPP](http://invisible-island.net/bcpp/) - indents C/C++ source programs, replacing tabs with spaces or the reverse.
* [GNU Indent](http://www.gnu.org/software/indent/) -  Unix utility that reformats C and C++ code in a user-defined indent style and coding style. GNU style is used by default.
* [GreatCode](http://sourceforge.net/projects/gcgreatcode/) - C/C++ source code beautifier that is now fully open source.

#### Cobol

* [Cobol Beautifier](http://www.siber.com/sct/tools/cbl-beau.html) - Parses your program just like a real Cobol compiler and then it generates Cobol code from the resulting Cobol Program Tree.

#### CSS

* [CSSTidy](http://csstidy.sourceforge.net/) - Opensource CSS parser and optimiser available as executeable file which can be controlled by command line and as PHP script.

#### Fortran

* [Fortran 90 PPR](ftp://ftp.ifremer.fr/ifremer/fortran90/) - Fortran 90 preprocessor and formatter written in Fortran 90.

#### Haskell

* [hindent](https://github.com/chrisdone/hindent) - Extensible Haskell pretty printer available both as a library and an executable.

#### HTML

* [HTB](http://www.digital-mines.com/htb/) - Command-line utility to reformat HTML/XML/XSLT source code with an array of user specified options.
* [Tidy](http://tidy.sourceforge.net/) - Free-standing C library

#### Java

* [Google Java Format](https://github.com/google/google-java-format) - google-java-format is a program that reformats Java source code to comply with Google Java Style.
* [JALOPY](http://notzippy.github.io/JALOPY2-MAIN/) - Source code formatting tool for the Sun Java Programming Language.
* [Jindent](http://www.jindent.com/) - Commercial source code formatter for the programming languages Java, C and C++

#### JavaScript

* [beautifier.io](https://beautifier.io/) -  Online JavaScript Beautifier

#### JSP

* [JSPPP](http://jsppp.sourceforge.net/) - Indentor for JSP files in various styles.

#### .NET

* [NArrange](http://www.narrange.net/) - Code beautifier that automatically organizes code members and elements within .NET classes.

#### Perl

* [PerlTidy](http://perltidy.sourceforge.net/) -  Perl script which indents and reformats Perl scripts.

#### PHP

* [PHP_Beautifier](http://pear.php.net/package/PHP_Beautifier) - Beautifier for PHP
* [phpCB](http://www.waterproof.fr/products/phpCodeBeautifier/) - Tool available as a GUI, command line and an integrated tool of PHPEdit.
* [phpStylist](http://sourceforge.net/projects/phpstylist/) - Formatter with customizable options.

#### PL/SQL

* [Pl/Sql tidy](http://psti.equinoxbase.com/) - Program to tidy, beautify or format Pl/Sql code in a batch file or Dos prompt.
* [Poor Man's T-SQL Formatter](http://architectshack.com/PoorMansTSqlFormatter.ashx) - .Net 2.0 library with demo UI, command-line bulk formatter, SSMS/Visual Studio add-in, notepad++ plugin, winmerge plugin, and web service for reformatting and coloring T-SQL code to the user's preferences.

#### Python

* [black](https://github.com/ambv/black) - The uncompromising Python code formatter 
* [pindent](http://svn.python.org/projects/python/trunk/Tools/scripts/pindent.py) - Adds comments when blocks are closed, or can properly indent code if comments are put in.
* [yapf](https://github.com/google/yapf) - A formatter for Python files.

#### Ruby

* [Ruby Script Beautifier](http://www.arachnoid.com/ruby/rubyBeautifier.html) - Beautifier written in Ruby.

#### Shell

* [ShellIndent](http://www.bolthole.com/AWK.html) - Indent formatting program for .sh scripts.

#### VBS

* [VBSBeautifier](http://www.daansystems.com/vbsbeaut/) - Beautifier for ASP and clientside VBScript files.

#### XML

* [XML Indent](http://xmlindent.sourceforge.net/) - XML stream reformatter written in ANSI C.

[codeformatters.md Github](https://github.com/rishirdua/awesome-code-formatters
)
