sponsor Vim development Vim logo go to HTTPS page Vim Book Ad

vim-prettier : A vim plugin wrapper for prettier

 script karma  Rating 54/17, Downloaded by 243    Comments, bugs, improvements  Vim wiki

created by
mtermayer reis
 
script type
utility
 
description
## vim-prettier

A vim plugin wrapper for prettier, pre-configured with custom default prettier settings.

By default it will auto format **javascript**, **typescript**, **less**, **scss**, **css**, **json**, and **graphql** files that have "@format" annotation in the header of the file.

### Prettier Executable resolution

When installed via vim-plug, a default prettier executable is installed inside vim-prettier.

vim-prettier executable resolution:

1. Tranverse parents and search for Prettier installation inside `node_modules`
2. Look for a global prettier installation
3. Use locally installed vim-prettier prettier executable

### USAGE

Prettier by default will run on auto save but can also be manualy triggered by:

```vim
<Leader>p
```
or

```vim
:Prettier
```

If your are on vim 8+ you can also trigger async formatting by:

```vim
:PrettierAsync
```

### Configuration

Disable auto formatting of files that have "@format" tag

```vim
let g:prettier#autoformat = 0
```

The command `:Prettier` by default is synchronous but can also be forced async

```vim
let g:prettier#exec_cmd_async = 1
```

By default parsing errors will open the quickfix but can also be disabled

```vim
let g:prettier#quickfix_enabled = 0
```

To enable vim-prettier to run in files without requiring the "@format" doc tag.
First disable the default autoformat, then update to your own custom behaviour

Running before saving sync:

```vim
let g:prettier#autoformat = 0
autocmd BufWritePre *.js,*.json,*.css,*.scss,*.less,*.graphql Prettier
```

Running before saving async (vim 8+):

```vim
let g:prettier#autoformat = 0
autocmd BufWritePre *.js,*.json,*.css,*.scss,*.less,*.graphql PrettierAsync
```

Running before saving, changing text or leaving insert mode:

```vim
" when running at every change you may want to disable quickfix
let g:prettier#quickfix_enabled = 0

let g:prettier#autoformat = 0
autocmd BufWritePre,TextChanged,InsertLeave *.js,*.json,*.css,*.scss,*.less,*.graphql PrettierAsync
```

### Overwrite default prettier configuration

**Note:** vim-prettier default settings differ from prettier intentionally.

```vim
" max line lengh that prettier will wrap on
g:prettier#config#print_width = 80

" number of spaces per indentation level
g:prettier#config#tab_width = 2

" use tabs over spaces
g:prettier#config#use_tabs = 'false'

" print semicolons
g:prettier#config#semi = 'true'

" single quotes over double quotes
g:prettier#config#single_quote = 'true'

" print spaces between brackets
g:prettier#config#bracket_spacing = 'false'

" put > on the last line instead of new line
g:prettier#config#jsx_bracket_same_line = 'true'

" none|es5|all
g:prettier#config#trailing_comma = 'all'

" flow|babylon|typescript|postcss|json|graphql
g:prettier#config#parser = 'flow'

```
### REQUIREMENT(S)

If prettier installation can't be found no code formatting will happen
 
install details
### INSTALL

Install with [vim-plug](https://github.com/junegunn/vim-plug), assumes node and yarn|npm installed globally.

```vim
" post install (yarn install | npm install) then load plugin only for editing supported files
Plug 'prettier/vim-prettier', {
\ 'do': 'yarn install',
\ 'for': ['javascript', 'typescript', 'css', 'less', 'scss', 'json', 'graphql'] }
```

If using other vim plugin managers or doing manual setup make sure to have `prettier` installed globally or go to your vim-prettier directory and either do `npm install` or `yarn install`
 

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
vim-prettier-0.0.11.zip 0.0.11 2017-07-12 7.4 mtermayer reis feature: Adding support for vim 7.4
vim-prettier-0.0.10.zip 0.0.10 2017-07-02 8.0 mtermayer reis bugfix: fixing bug where json parser could create invalid json by adding extra comma to the end
vim-prettier-0.0.9.zip 0.0.9 2017-07-01 8.0 mtermayer reis feature: file type detection support
vim-prettier-0.0.8.zip 0.0.8 2017-07-01 8.0 mtermayer reis feature: Adding support for JSON and GraphQL formatting
vim-prettier-0.0.7.zip 0.0.7 2017-06-20 8.0 mtermayer reis feature: enabling partial buffer conversion when using visual selection
vim-prettier-0.0.6.zip 0.0.6 2017-06-07 8.0 mtermayer reis feature: Adding configuration toggle for controlling error quick fix parsing
feature: Adding PrettierAsync command
bugfix: Fixing configuration bug where boolean values where not correctly  parsed
bugfix: Making sure that async jobs do not execute if already in progress
vim-prettier-0.0.5.zip 0.0.5 2017-06-06 8.0 mtermayer reis feature: Bumping support to latest prettier ^1.4.X
feature:  Support for formatting css, scss, less, typescript
feature:  Allowing user configuration setting to enable async as the default for the `:Prettier` command
vim-prettier-0.0.4.zip 0.0.4 2017-05-31 8.0 mtermayer reis feature: Adding support for error parsing on quickfix
vim-prettier-0.0.3.zip 0.0.3 2017-05-28 8.0 mtermayer reis feature: Adding support for Async formatting  and making it default for auto save
bugfix: Fixing params sent to prettier CLI
bugfix: Fix bug where default prettier plugin installation path was never used
vim-prettier-0.0.2.zip 0.0.2 2017-05-26 8.0 mtermayer reis bugfix: Should not overwrite buffer when prettier fails to parse file
vim-prettier-0.0.1.zip 0.0.1 2017-05-25 8.0 mtermayer reis Initial upload
ip used for rating: 54.224.41.46

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
   
SourceForge.net Logo