Code Monkey home page Code Monkey logo

atom-beautify's Introduction

๐Ÿ’„ atom-beautify

apm GitHub stars GitHub issues Greenkeeper badge

Slack Twitter Follow Gitter Bountysource Paypal Donations

Sign up for Unibeautify CI: https://goo.gl/jmM4QN

Help improve Atom-Beautify by completing the quick questionnaire: https://goo.gl/iEHBNr

Mac OS and
Travis CI: Build Status AppVeyor: Build status

Throughput Graph

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
image image

Table of Contents

Installation

Atom Package: https://atom.io/packages/atom-beautify

apm install atom-beautify

Or Settings/Preferences โž” Install โž” Search for atom-beautify

Important Notice: Analytics

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
image image

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.

Poll: Improving installation of third-party beautifiers

Many users are experiencing issues when installing third party beautifiers (e.g. Uncrustify, PHP-CS-Fixer, and many more). A possible solution is a "cloud" service which provides remote access to these beautifiers. Atom-Beautify would then communicate with these services, allowing for zero-installation beautification.

Please let us know what you think!

Beautifiers

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 โš ๏ธ 2 executables โš ๏ธ Only 1 of 2 executables ๐Ÿณ With Docker:
1. Install autopep8 (autopep8) with docker pull unibeautify/autopep8

๐Ÿ“‘ Manually:
1. Install autopep8 (autopep8) by following https://github.com/hhatto/autopep8#installation
2. Install isort (isort) by following https://github.com/timothycrosley/isort#installing-isort
beautysh โš ๏ธ 1 executable โœ… ๐Ÿ’ฏ% 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
brittany โš ๏ธ Manual installation ๐Ÿšง Not an executable ๐Ÿ“„ Go to https://github.com/lspitzner/brittany and follow the instructions.
clang-format โš ๏ธ 1 executable โœ… ๐Ÿ’ฏ% 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 โš ๏ธ 1 executable โœ… ๐Ÿ’ฏ% 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 โš ๏ธ 1 executable โŒ No Docker support ๐Ÿ“‘ Manually:
1. Install Dfmt (dfmt) by following https://github.com/dlang-community/dfmt#building
elm-format โš ๏ธ 1 executable โœ… ๐Ÿ’ฏ% 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-
Emacs Verilog Mode โš ๏ธ 1 executable โŒ No Docker support ๐Ÿ“‘ Manually:
1. Install Emacs (emacs) by following https://www.gnu.org/software/emacs/
erl_tidy โš ๏ธ Manual installation ๐Ÿšง Not an executable ๐Ÿ“„ Go to http://erlang.org/doc/man/erl_tidy.html and follow the instructions.
ESLint Fixer โœ… ๐Ÿ‘Œ Not necessary ๐Ÿ˜ƒ Nothing!
formatR โš ๏ธ 1 executable โœ… ๐Ÿ’ฏ% 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 โš ๏ธ 1 executable โŒ No Docker support ๐Ÿ“‘ Manually:
1. Install Emacs (emacs) by following https://www.gnu.org/software/emacs/
Gherkin formatter โœ… ๐Ÿ‘Œ Not necessary ๐Ÿ˜ƒ Nothing!
GN โš ๏ธ 1 executable โŒ No Docker support ๐Ÿ“‘ Manually:
1. Install gn (gn) by following https://www.chromium.org/developers/how-tos/get-the-code
gofmt โš ๏ธ Manual installation ๐Ÿšง Not an executable ๐Ÿ“„ Go to https://golang.org/cmd/gofmt/ and follow the instructions.
goimports โš ๏ธ 1 executable โœ… ๐Ÿ’ฏ% of executables ๐Ÿณ With Docker:
1. Install goimports (goimports) with docker pull unibeautify/goimports

๐Ÿ“‘ Manually:
1. Install goimports (goimports) by following https://godoc.org/golang.org/x/tools/cmd/goimports
hh_format โš ๏ธ Manual installation ๐Ÿšง Not an executable ๐Ÿ“„ Go to http://hhvm.com/ and follow the instructions.
hindent โš ๏ธ Manual installation ๐Ÿšง Not an executable ๐Ÿ“„ Go to https://github.com/commercialhaskell/hindent and follow the instructions.
HTML Beautifier โš ๏ธ Manual installation ๐Ÿšง 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 โš ๏ธ Manual installation ๐Ÿšง 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 โš ๏ธ 1 executable โœ… ๐Ÿ’ฏ% of executables ๐Ÿณ With Docker:
1. Install ocp-indent (ocp-indent) with docker pull unibeautify/ocp-indent

๐Ÿ“‘ Manually:
1. Install ocp-indent (ocp-indent) by following https://www.typerex.org/ocp-indent.html#installation
Perltidy โš ๏ธ Manual installation ๐Ÿšง Not an executable ๐Ÿ“„ Go to http://perltidy.sourceforge.net/ and follow the instructions.
PHP-CS-Fixer โš ๏ธ 2 executables โš ๏ธ Only 1 of 2 executables ๐Ÿณ 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.php
2. Install PHP-CS-Fixer (php-cs-fixer) by following https://github.com/FriendsOfPHP/PHP-CS-Fixer#installation
PHPCBF โš ๏ธ 2 executables โš ๏ธ Only 1 of 2 executables ๐Ÿณ With Docker:
1. Install PHPCBF (phpcbf) with docker pull unibeautify/phpcbf

๐Ÿ“‘ Manually:
1. Install PHP (php) by following http://php.net/manual/en/install.php
2. Install PHPCBF (phpcbf) by following https://github.com/squizlabs/PHP_CodeSniffer#installation
Prettier โœ… ๐Ÿ‘Œ Not necessary ๐Ÿ˜ƒ Nothing!
Pretty Diff โœ… ๐Ÿ‘Œ Not necessary ๐Ÿ˜ƒ Nothing!
Pug Beautify โœ… ๐Ÿ‘Œ Not necessary ๐Ÿ˜ƒ Nothing!
puppet-lint โš ๏ธ 1 executable โœ… ๐Ÿ’ฏ% of executables ๐Ÿณ With Docker:
1. Install puppet-lint (puppet-lint) with docker pull unibeautify/puppet-lint

๐Ÿ“‘ Manually:
1. Install puppet-lint (puppet-lint) by following http://puppet-lint.com/
pybeautifier โš ๏ธ Manual installation ๐Ÿšง Not an executable ๐Ÿ“„ Go to https://github.com/guyskk/pybeautifier and follow the instructions.
Remark โœ… ๐Ÿ‘Œ Not necessary ๐Ÿ˜ƒ Nothing!
Rubocop โš ๏ธ 1 executable โŒ No Docker support ๐Ÿ“‘ Manually:
1. Install Rubocop (rubocop) by following http://rubocop.readthedocs.io/en/latest/installation/
Ruby Beautify โš ๏ธ Manual installation ๐Ÿšง Not an executable ๐Ÿ“„ Go to https://github.com/erniebrodeur/ruby-beautify and follow the instructions.
rustfmt โš ๏ธ Manual installation ๐Ÿšง Not an executable ๐Ÿ“„ Go to https://github.com/rust-lang-nursery/rustfmt and follow the instructions.
SassConvert โš ๏ธ 1 executable โœ… ๐Ÿ’ฏ% 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 โš ๏ธ Manual installation ๐Ÿšง Not an executable ๐Ÿ“„ Go to https://github.com/andialbrecht/sqlparse and follow the instructions.
stylish-haskell โš ๏ธ Manual installation ๐Ÿšง Not an executable ๐Ÿ“„ Go to https://github.com/jaspervdj/stylish-haskell and follow the instructions.
terraformfmt โš ๏ธ 1 executable โœ… ๐Ÿ’ฏ% of executables ๐Ÿณ With Docker:
1. Install Terraform (terraform) with docker pull hashicorp/terraform

๐Ÿ“‘ Manually:
1. Install Terraform (terraform) by following https://www.terraform.io
Tidy Markdown โœ… ๐Ÿ‘Œ Not necessary ๐Ÿ˜ƒ Nothing!
TypeScript Formatter โœ… ๐Ÿ‘Œ Not necessary ๐Ÿ˜ƒ Nothing!
Uncrustify โš ๏ธ 1 executable โœ… ๐Ÿ’ฏ% 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
VHDL Beautifier โš ๏ธ 1 executable โŒ No Docker support ๐Ÿ“‘ Manually:
1. Install Emacs (emacs) by following https://www.gnu.org/software/emacs/
Vue Beautifier โœ… ๐Ÿ‘Œ Not necessary ๐Ÿ˜ƒ Nothing!
yapf โš ๏ธ Manual installation ๐Ÿšง Not an executable ๐Ÿ“„ Go to https://github.com/google/yapf and follow the instructions.

Language Support

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
Blade Blade .blade.php JS Beautify
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, Prettier, 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, .f03, .F03, .f08, .F08 Fortran Beautifier
gherkin Gherkin .feature Gherkin formatter
GLSL C, opencl, GLSL .vert, .frag clang-format
GN gn .gn, .gni GN
Go Go .go gofmt, goimports
Golang Template HTML (Go), Go Template .gohtml Pretty Diff
Handlebars Handlebars, HTML (Handlebars) .hbs, .handlebars JS Beautify, Pretty Diff
Haskell Haskell .hs stylish-haskell, brittany, hindent
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, Prettier, Pretty Diff
JSON JSON .json JS Beautify, Prettier, 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, Prettier
Lua Lua .lua, .ttslua Lua beautifier
Markdown GitHub Markdown .markdown, .md Remark, Prettier, Tidy Markdown
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, MagicPython .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, Prettier, SassConvert
Spacebars Spacebars Pretty Diff
SQL SQL (Rails), SQL .sql sqlformat
SVG SVG .svg Pretty Diff
Swig HTML (Swig), SWIG .swig Pretty Diff
Terraform Terraform .tf terraformfmt
TSS TSS .tss Pretty Diff
TSX TypeScriptReact .tsx TypeScript Formatter
Twig HTML (Twig) .twig Pretty Diff
TypeScript TypeScript .ts TypeScript Formatter, Prettier
UX Markup UX .ux Pretty Diff
Vala Vala .vala, .vapi Uncrustify
Verilog Verilog .svh, .v, .sv Emacs Verilog Mode
VHDL VHDL 2008 .vhd, .VHD VHDL Beautifier
Visualforce Visualforce .page Pretty Diff
Vue Vue Component .vue Vue Beautifier, ESLint Fixer, Prettier
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

Usage

Command Palette

Open the Command Palette, type Beautify, and run Beautify Editor.

image

Beautify a Specific Language

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.

atom-beautify-language-commands

Selection of Code

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
image image image

Beautify On Save

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.

atom-beautify-setup-beautify-on-save

Keyboard Shortcut

You can also type Ctrl-Alt-B as a shortcut or click Packages > Beautify in the menu.

Custom Keyboard Shortcuts

See Keymaps In-Depth for more details.

For example:

'.editor':
  'ctrl-alt-b': 'atom-beautify:beautify-editor'

Configuration

Edit your .jsbeautifyrc file in any of the following locations:

  • Atom Package Settings Atom โž” Preferences โž” Search for atom-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.

Simple

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
}

Nested (Recommended)

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
  }
}

Troubleshooting

See docs/troubleshooting.md.

Contributing

See CONTRIBUTING.md.

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.

License

MIT ยฉ Glavin Wiechert

atom-beautify's People

Contributors

glavin001 avatar stevenzeck avatar janbernloehr avatar greenkeeperio-bot avatar donaldpipowitch avatar bbugh avatar prettydiff avatar derbrobro avatar karolyi avatar sebastian-d avatar onigra avatar ra100 avatar uzitech avatar darron1217 avatar hxsf avatar kachkaev avatar kelvix avatar joaomlneto avatar mrmurphy avatar kamontat avatar laurenttreguier avatar focus avatar aidistan avatar finalcut avatar jonidbendo avatar elijdonahue avatar faheel avatar markbaas avatar patrick-steele-idem avatar programfan avatar

Watchers

Zeyd Duran avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.