Mac OS and | |
---|---|
Travis CI: | AppVeyor: |
Beautify HTML, CSS, JavaScript, PHP, Python, Ruby, Java, C, C++, C#, Objective-C, CoffeeScript, TypeScript, Coldfusion, SQL, and more in Atom
Before | After |
---|---|
Original HTML | Beautified HTML |
Atom Package: https://atom.io/packages/atom-beautify
apm install atom-beautify
Or Settings/Preferences ➔ Packages ➔ Search for atom-beautify
Atom-Beautify respects the core.telemetryConsent
configuration option from Atom editor.
If you do not wish to have usage data sent to Google Analytics then please set core.telemetryConsent
to no
or undecided
option before using Atom-Beautify.
See Anonymous Analytics
section of docs for details.
Thank you.
On Atom Load | Change Setting Later |
---|---|
Next Version: Unibeautify
Atom-Beautify is going to be completely rewritten with Unibeautify at its core!
See unibeautify
branch for work in progress and Issue #1174.
Some of the supported beautifiers are developed for Node.js and are automatically installed when Atom-Beautify is installed. However, other beautifiers are command-line interface (CLI) applications and require you to manually install them.
Beautifier | Preinstalled | 🐳 Docker | Installation |
---|---|---|---|
align-yaml | ✅ | 👌 Not necessary | 😃 Nothing! |
autopep8 | 🐳 With Docker: 1. Install autopep8 ( autopep8 ) with docker pull unibeautify/autopep8 📑 Manually: 1. Install autopep8 ( autopep8 ) by following https://github.com/hhatto/autopep8#installation2. Install isort ( isort ) by following https://github.com/timothycrosley/isort#installing-isort |
||
beautysh | ✅ 💯% of executables | 🐳 With Docker: 1. Install beautysh ( beautysh ) with docker pull unibeautify/beautysh 📑 Manually: 1. Install beautysh ( beautysh ) by following https://github.com/bemeurer/beautysh#installation |
|
clang-format | ✅ 💯% of executables | 🐳 With Docker: 1. Install ClangFormat ( clang-format ) with docker pull unibeautify/clang-format 📑 Manually: 1. Install ClangFormat ( clang-format ) by following https://clang.llvm.org/docs/ClangFormat.html |
|
cljfmt | ✅ | 👌 Not necessary | 😃 Nothing! |
Coffee Formatter | ✅ | 👌 Not necessary | 😃 Nothing! |
coffee-fmt | ✅ | 👌 Not necessary | 😃 Nothing! |
Crystal | ✅ 💯% of executables | 🐳 With Docker: 1. Install Crystal ( crystal ) with docker pull unibeautify/crystal 📑 Manually: 1. Install Crystal ( crystal ) by following https://crystal-lang.org/docs/installation/ |
|
CSScomb | ✅ | 👌 Not necessary | 😃 Nothing! |
dfmt | ❌ No Docker support | 📑 Manually: 1. Install Dfmt ( dfmt ) by following https://github.com/dlang-community/dfmt#building |
|
elm-format | ✅ 💯% of executables | 🐳 With Docker: 1. Install elm-format ( elm-format ) with docker pull unibeautify/elm-format 📑 Manually: 1. Install elm-format ( elm-format ) by following https://github.com/avh4/elm-format#installation- |
|
erl_tidy | 🚧 Not an executable | 📄 Go to http://erlang.org/doc/man/erl_tidy.html and follow the instructions. | |
ESLint Fixer | ✅ | 👌 Not necessary | 😃 Nothing! |
formatR | ✅ 💯% of executables | 🐳 With Docker: 1. Install Rscript ( rscript ) with docker pull unibeautify/rscript 📑 Manually: 1. Install Rscript ( rscript ) by following https://github.com/yihui/formatR |
|
Fortran Beautifier | ❌ No Docker support | 📑 Manually: 1. Install Emacs ( emacs ) by following https://www.gnu.org/software/emacs/ |
|
Gherkin formatter | ✅ | 👌 Not necessary | 😃 Nothing! |
gofmt | 🚧 Not an executable | 📄 Go to https://golang.org/cmd/gofmt/ and follow the instructions. | |
hh_format | 🚧 Not an executable | 📄 Go to http://hhvm.com/ and follow the instructions. | |
HTML Beautifier | 🚧 Not an executable | 📄 Go to https://github.com/threedaymonk/htmlbeautifier and follow the instructions. | |
JS Beautify | ✅ | 👌 Not necessary | 😃 Nothing! |
JSCS Fixer | ✅ | 👌 Not necessary | 😃 Nothing! |
Latex Beautify | 🚧 Not an executable | 📄 Go to https://github.com/cmhughes/latexindent.pl and follow the instructions. | |
Lua beautifier | ✅ | 👌 Not necessary | 😃 Nothing! |
Marko Beautifier | ✅ | 👌 Not necessary | 😃 Nothing! |
Nginx Beautify | ✅ | 👌 Not necessary | 😃 Nothing! |
ocp-indent | 🚧 Not an executable | 📄 Go to https://www.typerex.org/ocp-indent.html and follow the instructions. | |
Perltidy | 🚧 Not an executable | 📄 Go to http://perltidy.sourceforge.net/ and follow the instructions. | |
PHP-CS-Fixer | 🐳 With Docker: 1. Install PHP-CS-Fixer ( php-cs-fixer ) with docker pull unibeautify/php-cs-fixer 📑 Manually: 1. Install PHP ( php ) by following http://php.net/manual/en/install.php2. Install PHP-CS-Fixer ( php-cs-fixer ) by following https://github.com/FriendsOfPHP/PHP-CS-Fixer#installation |
||
PHPCBF | ✅ 💯% of executables | 🐳 With Docker: 1. Install PHPCBF ( phpcbf ) with docker pull unibeautify/phpcbf 📑 Manually: 1. Install PHPCBF ( phpcbf ) by following https://github.com/squizlabs/PHP_CodeSniffer#installation |
|
Pretty Diff | ✅ | 👌 Not necessary | 😃 Nothing! |
Pug Beautify | ✅ | 👌 Not necessary | 😃 Nothing! |
puppet-lint | 🚧 Not an executable | 📄 Go to http://puppet-lint.com/ and follow the instructions. | |
pybeautifier | 🚧 Not an executable | 📄 Go to https://github.com/guyskk/pybeautifier and follow the instructions. | |
Remark | ✅ | 👌 Not necessary | 😃 Nothing! |
Rubocop | 🚧 Not an executable | 📄 Go to https://github.com/bbatsov/rubocop and follow the instructions. | |
Ruby Beautify | 🚧 Not an executable | 📄 Go to https://github.com/erniebrodeur/ruby-beautify and follow the instructions. | |
rustfmt | 🚧 Not an executable | 📄 Go to https://github.com/nrc/rustfmt and follow the instructions. | |
SassConvert | ✅ 💯% of executables | 🐳 With Docker: 1. Install SassConvert ( sass-convert ) with docker pull unibeautify/sass-convert 📑 Manually: 1. Install SassConvert ( sass-convert ) by following http://sass-lang.com/documentation/file.SASS_REFERENCE.html#syntax |
|
sqlformat | 🚧 Not an executable | 📄 Go to https://github.com/andialbrecht/sqlparse and follow the instructions. | |
stylish-haskell | 🚧 Not an executable | 📄 Go to https://github.com/jaspervdj/stylish-haskell and follow the instructions. | |
Tidy Markdown | ✅ | 👌 Not necessary | 😃 Nothing! |
TypeScript Formatter | ✅ | 👌 Not necessary | 😃 Nothing! |
Uncrustify | ✅ 💯% of executables | 🐳 With Docker: 1. Install Uncrustify ( uncrustify ) with docker pull unibeautify/uncrustify 📑 Manually: 1. Install Uncrustify ( uncrustify ) by following https://github.com/uncrustify/uncrustify |
|
Vue Beautifier | ✅ | 👌 Not necessary | 😃 Nothing! |
yapf | 🚧 Not an executable | 📄 Go to https://github.com/google/yapf and follow the instructions. |
See all supported options in the documentation at docs/options.md
.
Language | Grammars | File Extensions | Supported Beautifiers |
---|---|---|---|
Apex | Apex |
.cls , .trigger |
Uncrustify |
Arduino | Arduino |
.ino , .pde |
Uncrustify |
Bash | Shell Script |
.bash , .sh |
beautysh |
C | C , opencl |
.h , .c , .cl |
Uncrustify , clang-format |
Coldfusion | html |
.cfm , .cfml , .cfc |
Pretty Diff |
Clojure | Clojure |
.clj , .cljs , .edn |
cljfmt |
CoffeeScript | CoffeeScript |
.coffee |
coffee-fmt , Coffee Formatter |
C++ | C++ |
.h , .hh , .cc , .cpp , .cxx , .C , .cu , .c++ , .hpp , .hxx , .h++ , .cuh |
Uncrustify , clang-format |
Crystal | Crystal |
.cr |
Crystal |
C# | C# |
.cs |
Uncrustify |
CSS | CSS |
.css |
JS Beautify , CSScomb , Pretty Diff , SassConvert |
CSV | CSV |
.csv |
Pretty Diff |
D | D |
.d |
Uncrustify , dfmt |
EJS | EJS , JavaScript Template , HTML (Angular) |
.ejs |
JS Beautify , Pretty Diff |
Elm | Elm |
.elm |
elm-format |
ERB | HTML (Ruby - ERB) , HTML (Rails) |
.erb |
Pretty Diff , HTML Beautifier |
Erlang | Erlang |
.erl |
erl_tidy |
Fortran | Fortran - Modern |
.f90 , .F90 , .f95 , .F95 |
Fortran Beautifier |
gherkin | Gherkin |
.feature |
Gherkin formatter |
GLSL | C , opencl , GLSL |
.vert , .frag |
clang-format |
Go | Go |
.go |
gofmt |
Golang Template | HTML (Go) , Go Template |
.gohtml |
Pretty Diff |
Handlebars | Handlebars , HTML (Handlebars) |
.hbs , .handlebars |
JS Beautify , Pretty Diff |
Haskell | Haskell |
.hs |
stylish-haskell |
HTML | HTML |
.html |
JS Beautify , Pretty Diff |
Jade | Jade , Pug |
.jade , .pug |
Pug Beautify |
Java | Java |
.java |
Uncrustify |
JavaScript | JavaScript |
.js |
JS Beautify , ESLint Fixer , JSCS Fixer , Pretty Diff |
JSON | JSON |
.json |
JS Beautify , Pretty Diff |
JSX | JSX , JavaScript (JSX) , Babel ES6 JavaScript , JavaScript with JSX |
.jsx , .js |
Pretty Diff , JS Beautify |
LaTeX | BibTeX , LaTeX , TeX |
.bib , .tex , .sty , .cls , .dtx , .ins , .bbx , .cbx |
Latex Beautify |
LESS | LESS |
.less |
Pretty Diff , CSScomb |
Lua | Lua |
.lua |
Lua beautifier |
Markdown | GitHub Markdown |
.markdown , .md |
Tidy Markdown , Remark |
Marko | Marko |
.marko |
Marko Beautifier |
Mustache | HTML (Mustache) |
.mustache |
JS Beautify , Pretty Diff |
Nginx | nginx |
.conf |
Nginx Beautify |
Nunjucks | Nunjucks , Nunjucks Templates , HTML (Nunjucks Templates) |
.njk , .nunjucks |
Pretty Diff |
Objective-C | Objective-C , Objective-C++ |
.m , .mm , .h |
Uncrustify , clang-format |
OCaml | OCaml |
.ml |
ocp-indent |
Pawn | Pawn |
Uncrustify |
|
Perl | Perl , Perl 6 |
.pl , .PL , .pm , .pod , .t |
Perltidy |
PHP | PHP |
.php , .module , .inc |
PHP-CS-Fixer , PHPCBF , hh_format |
Puppet | Puppet |
.pp |
puppet-lint |
Python | Python |
.py |
autopep8 , pybeautifier , yapf |
R | R |
.r , .R |
formatR |
Riot.js | Riot.js , HTML (Riot Tag) |
.tag |
Pretty Diff |
Ruby | Ruby , Ruby on Rails |
.rb |
Rubocop , Ruby Beautify |
Rust | Rust |
.rs , .rlib |
rustfmt |
Sass | Sass |
.sass |
SassConvert |
SCSS | SCSS |
.scss |
Pretty Diff , CSScomb , SassConvert |
Spacebars | Spacebars |
Pretty Diff |
|
SQL | SQL (Rails) , SQL |
.sql |
sqlformat |
SVG | SVG |
.svg |
Pretty Diff |
Swig | HTML (Swig) , SWIG |
.swig |
Pretty Diff |
TSS | TSS |
.tss |
Pretty Diff |
Twig | HTML (Twig) |
.twig |
Pretty Diff |
TypeScript | TypeScript |
.ts |
TypeScript Formatter |
UX Markup | UX |
.ux |
Pretty Diff |
Vala | Vala |
.vala , .vapi |
Uncrustify |
Visualforce | Visualforce |
.page |
Pretty Diff |
Vue | Vue Component |
.vue |
Vue Beautifier |
XML | SLD , XML , XHTML , XSD , XSL , JSP , GSP |
.sld , .xml , .xhtml , .xsd , .xsl , .jsp , .gsp , .plist , .recipe , .config |
Pretty Diff , JS Beautify |
XTemplate | XTemplate |
.xtemplate |
Pretty Diff |
YAML | YAML |
.yml , .yaml |
align-yaml |
Open the Command Palette, type Beautify
, and run Beautify Editor
.
You can use the Command Palette to beautify the editor for a specific language.
The commands are in the form Atom Beautify: Beautify Language {NAME}
(i.e. atom-beautify:beautify-language-{NAME}
for keyboard shortcuts).
For example, you may want to beautify JavaScript
code within a HTML
file.
It will only beautify selected text if a selection is found -- if not, the whole file will be beautified.
Selection of Code | Beautify Selection of Code | Beautify Entire File |
---|---|---|
Select code in Atom editor | Only that selection is beautified | Without a selection all code is beautified |
Beautify On Save
can be enabled for each language individually.
For example, for language HTML
go into Atom-Beautify's package settings (Atom
➔ Preferences
➔ Search for atom-beautify
), find HTML
, and toggle the Beautify On Save
option.
You can also type Ctrl-Alt-B as a shortcut or click Packages > Beautify
in the menu.
See Keymaps In-Depth for more details.
For example:
'.editor':
'ctrl-alt-b': 'atom-beautify:beautify-editor'
Edit your .jsbeautifyrc
file in any of the following locations:
- Atom Package Settings
Atom
➔Preferences
➔ Search foratom-beautify
- Same directory as current file
- Project root
atom-beautify
will recursively look up from the current file's directory to find.jsbeautifyrc
. - Your user's home directory
Note: Comments are supported in .jsbeautifyrc
thanks to strip-json-comments.
See examples of both ways inside examples/
See all supported options in the documentation at docs/options.md
.
See examples/simple-jsbeautifyrc/.jsbeautifyrc.
{
"indent_size": 2,
"indent_char": " ",
"other": " ",
"indent_level": 0,
"indent_with_tabs": false,
"preserve_newlines": true,
"max_preserve_newlines": 2,
"jslint_happy": true,
"indent_handlebars": true
}
See examples/nested-jsbeautifyrc/.jsbeautifyrc.
{
"html": {
"brace_style": "collapse",
"indent_char": " ",
"indent_scripts": "normal",
"indent_size": 6,
"max_preserve_newlines": 1,
"preserve_newlines": true,
"unformatted": ["a", "sub", "sup", "b", "i", "u"],
"wrap_line_length": 0
},
"css": {
"indent_char": " ",
"indent_size": 4
},
"js": {
"indent_size": 2,
"indent_char": " ",
"indent_level": 0,
"indent_with_tabs": false,
"preserve_newlines": true,
"max_preserve_newlines": 2,
"jslint_happy": true
},
"sql": {
"indent_size": 4,
"indent_char": " ",
"indent_level": 0,
"indent_with_tabs": false
}
}
See all contributors on GitHub.
Please update the CHANGELOG.md, add yourself as a contributor to the package.json, and submit a Pull Request on GitHub.