From c211c98ab7118be61873d0fe9897e5986c6f6441 Mon Sep 17 00:00:00 2001 From: mitermayer Date: Wed, 7 Jun 2017 10:45:48 -0700 Subject: Adding async command and user configurations - Adding configuration toggle for controlling error quick fix parsing - Adding PrettierAsync command - Fixing configuration bug where boolean values where not correctly parsed - Making sure that async jobs do not execute if already in progress --- plugin/prettier.vim | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) (limited to 'plugin') diff --git a/plugin/prettier.vim b/plugin/prettier.vim index 729ec2e..9ad1ae7 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -1,3 +1,16 @@ +" vim-prettier: A vim plugin wrapper for prettier, pre-configured with custom default prettier settings. +" +" Script Info {{{ +"========================================================================================================== +" Name Of File: prettier.vim +" Description: A vim plugin wrapper for prettier, pre-configured with custom default prettier settings. +" Maintainer: Mitermayer Reis +" Version: 0.0.5 +" Usage: Use :help vim-prettier, or visit the Github page https://github.com/mitermayer/vim-prettier +" +"========================================================================================================== +" }}} + if exists('g:loaded_prettier') finish endif @@ -5,44 +18,51 @@ let g:loaded_prettier = 1 " => Plugin config " autoformating enabled by default upon saving -let g:prettier#autoformat = get(g:, 'g:prettier#autoformat', 1) +let g:prettier#autoformat = get(g:, 'prettier#autoformat', 1) " calling :Prettier by default runs synchronous -let g:prettier#exec_cmd_async = get(g:, 'g:prettier#exec_cmd_async', 0) +let g:prettier#exec_cmd_async = get(g:, 'prettier#exec_cmd_async', 0) + +" when having formatting errors will open the quickfix by default +let g:prettier#quickfix_enabled = get(g:, 'prettier#quickfix_enabled', 1) " => Prettier CLI config " max line lengh that prettier will wrap on -let g:prettier#config#print_width = get(g:, 'g:prettier#config#print_width', 80) +let g:prettier#config#print_width = get(g:, 'prettier#config#print_width', 80) " number of spaces per indentation level -let g:prettier#config#tab_width = get(g:,'g:prettier#config#tab_width', 2) +let g:prettier#config#tab_width = get(g:,'prettier#config#tab_width', 2) " use tabs over spaces -let g:prettier#config#use_tabs = get(g:,'g:prettier#config#use_tabs', 'false') +let g:prettier#config#use_tabs = get(g:,'prettier#config#use_tabs', 'false') " print semicolons -let g:prettier#config#semi = get(g:,'g:prettier#config#semi', 'true') +let g:prettier#config#semi = get(g:,'prettier#config#semi', 'true') " single quotes over double quotes -let g:prettier#config#single_quote = get(g:,'g:prettier#config#single_quote', 'true') +let g:prettier#config#single_quote = get(g:,'prettier#config#single_quote', 'true') " print spaces between brackets -let g:prettier#config#bracket_spacing = get(g:,'g:prettier#config#bracket_spacing', 'false') +let g:prettier#config#bracket_spacing = get(g:,'prettier#config#bracket_spacing', 'false') " put > on the last line instead of new line -let g:prettier#config#jsx_bracket_same_line = get(g:,'g:prettier#config#jsx_bracket_same_line', 'true') +let g:prettier#config#jsx_bracket_same_line = get(g:,'prettier#config#jsx_bracket_same_line', 'true') " none|es5|all -let g:prettier#config#trailing_comma = get(g:,'g:prettier#config#trailing_comma', 'all') +let g:prettier#config#trailing_comma = get(g:,'prettier#config#trailing_comma', 'all') " flow|babylon|typescript|postcss -let g:prettier#config#parser = get(g:,'g:prettier#config#parser', 'flow') +let g:prettier#config#parser = get(g:,'prettier#config#parser', 'flow') " synchronous by default command! Prettier call prettier#Prettier(g:prettier#exec_cmd_async) +" prettier async +command! PrettierAsync call prettier#Prettier(1) + " map command if !hasmapto('(Prettier)') && maparg('p', 'n') ==# '' nmap p (Prettier) endif nnoremap (Prettier) :Prettier +nnoremap (PrettierAsync) :PrettierAsync -- cgit v1.3 From e063d0ca656a7413da3cc6b543adde58a09f8c01 Mon Sep 17 00:00:00 2001 From: mitermayer Date: Wed, 7 Jun 2017 11:11:43 -0700 Subject: Updating docs --- README.md | 22 +++++++++++----------- doc/prettier.txt | 32 +++++++++++++++++++++++++------- plugin/prettier.vim | 2 +- 3 files changed, 37 insertions(+), 19 deletions(-) (limited to 'plugin') diff --git a/README.md b/README.md index 0a87d7e..33573ea 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ plug 'mitermayer/vim-prettier', { 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` -## Prettier Executable resolution +### Prettier Executable resolution When installed via vim-plug, a default prettier executable is installed inside vim-prettier. @@ -29,7 +29,7 @@ vim-prettier executable resolution: 2. Look for a global prettier installation 3. Use locally installed vim-prettier prettier executable -## USAGE +### USAGE Prettier by default will run on auto save but can also be manualy triggered by: @@ -48,7 +48,7 @@ If your are on vim 8+ you can also trigger async formatting by: :PrettierAsync ``` -## Configuration +### Configuration Disable auto formatting of files that have "@format" tag @@ -56,13 +56,13 @@ Disable auto formatting of files that have "@format" tag let g:prettier#autoformat = 0 ``` -The command `:Prettier` by default is synchronous but can be forced to be async +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, that behaviour can be controlled by +By default parsing errors will open the quickfix but can also be disabled ```vim let g:prettier#quickfix_enabled = 0 @@ -74,28 +74,28 @@ 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,*.css,*.scss,*.less Prettier +let g:prettier#autoformat = 0 +autocmd BufWritePre *.js,*.css,*.scss,*.less Prettier ``` Running before saving async (vim 8+): ```vim - let g:prettier#autoformat = 0 - autocmd BufWritePre *.js,*.css,*.scss,*.less PrettierAsync +let g:prettier#autoformat = 0 +autocmd BufWritePre *.js,*.css,*.scss,*.less PrettierAsync ``` Running before saving, changing text or leaving insert mode: ```vim -" when running at every change you may want to disable quickfix error parsing to reduce noise +" 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,*.css,*.scss,*.less PrettierAsync ``` -Overwrite default configuration +### Overwrite default prettier configuration ```vim " max line lengh that prettier will wrap on diff --git a/doc/prettier.txt b/doc/prettier.txt index d26a299..e60dc22 100644 --- a/doc/prettier.txt +++ b/doc/prettier.txt @@ -52,6 +52,10 @@ or > :Prettier < +If your are on vim 8+ you can also trigger async formatting by: +> + :PrettierAsync +< ============================================================================== CONFIGURATION *vim-prettier-configuration* @@ -59,22 +63,36 @@ Disable auto formatting of files that have "@format" tag > let g:prettier#autoformat = 0 < -The command `:Prettier` by default is synchronous but can be forced to be async +The command `:Prettier` by default is synchronous but can also be forced async > let g:prettier#exec_cmd_async = 1 < -Enable vim-prettier to run in files without requiring the "@format" doc tag +By default parsing errors will open the quickfix but can also be disabled > - " => for older vim you can run it synchronous before saving - autocmd BufWritePre *.js,*.css,*.scss,*.less Prettier + let g:prettier#exec_cmd_async = 1 +< +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 - " => vim greater than 8.0 has async support +Running before saving sync: +> + let g:prettier#autoformat = 0 + autocmd BufWritePre *.js,*.css,*.scss,*.less Prettier +< +Running before saving async (vim 8+): +> + let g:prettier#autoformat = 0 autocmd BufWritePre *.js,*.css,*.scss,*.less PrettierAsync +< +Running before saving, changing text or leaving insert mode: +> + let g:prettier#autoformat = 0 + " when running at every change you may want to disable quickfix + let g:prettier#quickfix_enabled = 0 - " => if you want prettier to run when changes happen autocmd BufWritePre,TextChanged,InsertLeave *.js,*.css,*.scss,*.less PrettierAsync < -Overwrite default configuration +Overwrite default prettier configuration > " max line lengh that prettier will wrap on g:prettier#config#print_width = 80 diff --git a/plugin/prettier.vim b/plugin/prettier.vim index 9ad1ae7..53bb4ed 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -6,7 +6,7 @@ " Description: A vim plugin wrapper for prettier, pre-configured with custom default prettier settings. " Maintainer: Mitermayer Reis " Version: 0.0.5 -" Usage: Use :help vim-prettier, or visit the Github page https://github.com/mitermayer/vim-prettier +" Usage: Use :help vim-prettier-usage, or visit https://github.com/mitermayer/vim-prettier " "========================================================================================================== " }}} -- cgit v1.3