*neoformat.txt*	A Neovim plugin for formatting.

Version: 0.1

CONTENTS					*neoformat-contents*

Introduction		|neoformat-introduction|
Install			    |neoformat-install|
Usage			    |neoformat-usage|
Supported Filetypes	|neoformat-supported-filetypes|

==============================================================================
INTRODUCTION					*neoformat-introduction*

*neoformat* uses a variety of formatters for differing filetypes.
Currently, *neoformat* will run a formatter asynchronously, and on success it
will update the current buffer with the formatted text. On a formatter failure,
*neoformat* will try the next formatter defined for the filetype.

The job control is based off of vim-go's.

==============================================================================
INSTALL						*neoformat-install*

Install with [vim-plug](https://github.com/junegunn/vim-plug)
>
	Plug 'sbdchd/neoformat'
<
==============================================================================
USAGE						*neoformat-usage* *Neoformat*

Format the current file using its filetype
>
	:Neoformat
<Or specify a certain formatter (must be defined for the current filetype)
>
	:Neoformat js-beautify
<
==============================================================================
CONFIG						*neoformat-config*

Define custom formatters.
>
    let g:neoformat_python_autopep8 = {
		\ 'exe': 'autopep8'
		\ }

    let g:neoformat_enabled_python = ['autopep8']
<
Enable basic formatting when a filetype is not found. Disabled by default.
>
    " Enable alignment
    let g:neoformat_basic_format_align = 1

    " Enable tab to spaces conversion
    let g:neoformat_basic_format_retab = 1

    " Enable trimmming of trailing whitespace
    let g:neoformat_basic_format_trim = 1
<
Make Neoformat read from the file instead of the buffer.
>
    let g:neoformat_read_from_buffer = 0
<
When debugging, you can enable either of following variables for extra logging.
>
    let g:neoformat_verbose = 1 " only affects the verbosity of Neoformat
    " Or
    let &verbose            = 1 " also increases verbosity of the editor as a whole
<
==============================================================================
SUPPORTED FILETYPES				*neoformat-supported-filetypes*

- Arduino
  - [uncrustify](http://uncrustify.sourceforge.net),
    [clang-format](http://clang.llvm.org/docs/ClangFormat.html),
    [astyle](http://astyle.sourceforge.net)
- C
  - [uncrustify](http://uncrustify.sourceforge.net),
    [clang-format](http://clang.llvm.org/docs/ClangFormat.html),
    [astyle](http://astyle.sourceforge.net)
- C#
  - [uncrustify](http://uncrustify.sourceforge.net),
    [astyle](http://astyle.sourceforge.net)
- C++
  - [uncrustify](http://uncrustify.sourceforge.net),
    [clang-format](http://clang.llvm.org/docs/ClangFormat.html),
    [astyle](http://astyle.sourceforge.net)
- Crystal
  - crystal tool format (ships with [crystal](http://crystal-lang.org))
- CSS
  - css-beautify (ships with [js-beautify](https://github.com/beautify-web/js-beautify)),
    [csscomb](http://csscomb.com)
- D
  - [uncrustify](http://uncrustify.sourceforge.net),
    [dfmt](https://github.com/Hackerpilot/dfmt)
- Dart
  - [dartfmt](https://www.dartlang.org/tools/)
- Elm
  - [elm-format](https://github.com/avh4/elm-format)
- Go
  - [gofmt](https://golang.org/cmd/gofmt/),
    [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports)
- Haskell
  - [stylish-haskell](https://github.com/jaspervdj/stylish-haskell)
- HTML
  - html-beautify (ships with [js-beautify](https://github.com/beautify-web/js-beautify))
- Jade
  - [pug-beautifier](https://github.com/vingorius/pug-beautifier)
- Java
  - [uncrustify](http://uncrustify.sourceforge.net),
    [astyle](http://astyle.sourceforge.net)
- Javascript
  - [js-beautify](https://github.com/beautify-web/js-beautify)
- JSON
  - [js-beautify](https://github.com/beautify-web/js-beautify)
- Less
  - [csscomb](http://csscomb.com)
- Lua
  - [luaformatter](https://github.com/LuaDevelopmentTools/luaformatter)
- Markdown
  - [remark](https://github.com/wooorm/remark)
- Objective-C
  - [uncrustify](http://uncrustify.sourceforge.net),
    [clang-format](http://clang.llvm.org/docs/ClangFormat.html)
    [astyle](http://astyle.sourceforge.net)
- OCaml
  - [ocp-indent](http://www.typerex.org/ocp-indent.html)
- Pawn
  - [uncrustify](http://uncrustify.sourceforge.net)
- Perl
  - [perltidy](http://perltidy.sourceforge.net)
- PHP
  - [php_beautifier](http://pear.php.net/package/PHP_Beautifier)
- Proto
  - [clang-format](http://clang.llvm.org/docs/ClangFormat.html)
- Pug (formally Jade)
  - [pug-beautifier](https://github.com/vingorius/pug-beautifier)
- Python
  - [yapf](https://github.com/google/yapf),
    [autopep8](https://github.com/hhatto/autopep8)
- Ruby
  - [ruby-beautify](https://github.com/erniebrodeur/ruby-beautify)
- Rust
  - [rustfmt](https://github.com/rust-lang-nursery/rustfmt)
- Sass
  - [sass-convert](http://sass-lang.com/documentation/#executables),
    [csscomb](http://csscomb.com)
- Scala
  - [scalariform](https://github.com/scala-ide/scalariform)
- SCSS
  - [sass-convert](http://sass-lang.com/documentation/#executables),
    [csscomb](http://csscomb.com)
- SQL
  - sqlformat (ships with [sqlparse](https://github.com/andialbrecht/sqlparse))
- Typescript
  - [tsfmt](https://github.com/vvakame/typescript-formatter)
- VALA
  - [uncrustify](http://uncrustify.sourceforge.net)
- XHTML
  - [tidy](http://www.html-tidy.org)
- XML
  - [tidy](http://www.html-tidy.org)

==============================================================================
vim:tw=78:ts=8:ft=help:norl:noet:fen:noet:
