From 3e76ead2077ec866761bf243dd8750f4dc69f945 Mon Sep 17 00:00:00 2001 From: Christian Höltje Date: Fri, 13 Apr 2018 00:22:37 -0400 Subject: Start using prettier default arguments This is one approach for handling default prettier arguments. It is a little verbose, but I think ejecting the flags that don't have to be set by the editor (in favor of .prettierrc files) is a win. --- plugin/prettier.vim | 45 ++++++++++++++++++--------------------------- 1 file changed, 18 insertions(+), 27 deletions(-) (limited to 'plugin') diff --git a/plugin/prettier.vim b/plugin/prettier.vim index da008fe..08144aa 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -33,40 +33,31 @@ let g:prettier#exec_cmd_async = get(g:, 'prettier#exec_cmd_async', 0) 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:, 'prettier#config#print_width', 80) +" Max line length that prettier will wrap on: a number or 'auto' (use +" textwidth). +" default: 'auto' +let g:prettier#config#print_width = get(g:, 'prettier#config#print_width', 'auto') -" number of spaces per indentation level -let g:prettier#config#tab_width = get(g:,'prettier#config#tab_width', 2) +" number of spaces per indentation level: a number or 'auto' (use +" softtabstop) +" default: 'auto' +let g:prettier#config#tab_width = get(g:,'prettier#config#tab_width', 'auto') -" use tabs over spaces -let g:prettier#config#use_tabs = get(g:,'prettier#config#use_tabs', 'false') +" use tabs instead of spaces: true, false, or auto (use the expandtab setting). +" default: 'auto' +let g:prettier#config#use_tabs = get(g:,'prettier#config#use_tabs', 'auto') -" print semicolons -let g:prettier#config#semi = get(g:,'prettier#config#semi', 'true') - -" single quotes over double quotes -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:,'prettier#config#bracket_spacing', 'false') - -" put > on the last line instead of new line -let g:prettier#config#jsx_bracket_same_line = get(g:,'prettier#config#jsx_bracket_same_line', 'true') - -" avoid wrapping a single arrow function param in parens -let g:prettier#config#arrow_parens = get(g:,'prettier#config#arrow_parens', 'avoid') - -" none|es5|all -let g:prettier#config#trailing_comma = get(g:,'prettier#config#trailing_comma', 'all') - -" flow|babylon|typescript|postcss|json|graphql -let g:prettier#config#parser = get(g:,'prettier#config#parser', 'flow') +" flow|babylon|typescript|css|less|scss|json|graphql|markdown or empty string +" (let prettier choose). +" default: '' +let g:prettier#config#parser = get(g:,'prettier#config#parser', '') " cli-override|file-override|prefer-file -let g:prettier#config#config_precedence = get(g:, 'prettier#config#config_precedence', 'prefer-file') +" default: 'cli-override' +let g:prettier#config#config_precedence = get(g:, 'prettier#config#config_precedence', 'cli-override') " always|never|preserve +" default: 'preserve' let g:prettier#config#prose_wrap = get(g:, 'prettier#config#prose_wrap', 'preserve') " Don't leave the quicklist focused on error. -- cgit v1.3 From 84b1da26c6204961d735562a1a080e4140de5072 Mon Sep 17 00:00:00 2001 From: mitermayer Date: Thu, 3 May 2018 13:49:12 -0700 Subject: We still need to ensure we use prefer-file over cli-override - prefer-file setting for config-precedence is what allow us to leverage from user defined configuration files like .prettierrc --- README.md | 6 +++--- doc/prettier.txt | 4 ++-- plugin/prettier.vim | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) (limited to 'plugin') diff --git a/README.md b/README.md index 25ad9a9..9d0f97a 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ By default it will auto format **javascript**, **typescript**, **less**, **scss**, **css**, **json**, **graphql** and **markdown** files if they have/support the "@format" pragma annotation in the header of the file. -![vim-prettier](/media/vim-prettier.gif?raw=true 'vim-prettier') +![vim-prettier](/media/vim-prettier.gif?raw=true "vim-prettier") ### INSTALL @@ -188,8 +188,8 @@ let g:prettier#config#use_tabs = 'auto' let g:prettier#config#parser = '' " cli-override|file-override|prefer-file -" default: 'cli-override' -let g:prettier#config#config_precedence = 'cli-override' +" default: 'prefer-file' +let g:prettier#config#config_precedence = 'prefer-file' " always|never|preserve " default: 'preserve' diff --git a/doc/prettier.txt b/doc/prettier.txt index 85280de..632c1d8 100644 --- a/doc/prettier.txt +++ b/doc/prettier.txt @@ -158,8 +158,8 @@ However they can be configured by: let g:prettier#config#parser = '' " cli-override|file-override|prefer-file - " default: 'cli-override' - let g:prettier#config#config_precedence = 'cli-override' + " default: 'prefer-file' + let g:prettier#config#config_precedence = 'prefer-file' " always|never|preserve " default: 'preserve' diff --git a/plugin/prettier.vim b/plugin/prettier.vim index 08144aa..f70cadb 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -53,8 +53,8 @@ let g:prettier#config#use_tabs = get(g:,'prettier#config#use_tabs', 'auto') let g:prettier#config#parser = get(g:,'prettier#config#parser', '') " cli-override|file-override|prefer-file -" default: 'cli-override' -let g:prettier#config#config_precedence = get(g:, 'prettier#config#config_precedence', 'cli-override') +" default: 'prefer-file' +let g:prettier#config#config_precedence = get(g:, 'prettier#config#config_precedence', 'prefer-file') " always|never|preserve " default: 'preserve' -- cgit v1.3 From 2ee343b23b5fa207d7fe75acc57008194bc8c9b4 Mon Sep 17 00:00:00 2001 From: mitermayer Date: Fri, 4 May 2018 22:13:23 -0700 Subject: Adding support for neovim --- autoload/prettier/job/async/neovim.vim | 2 -- autoload/prettier/job/runner.vim | 6 +----- plugin/prettier.vim | 3 --- 3 files changed, 1 insertion(+), 10 deletions(-) (limited to 'plugin') diff --git a/autoload/prettier/job/async/neovim.vim b/autoload/prettier/job/async/neovim.vim index c324f17..1d3531d 100644 --- a/autoload/prettier/job/async/neovim.vim +++ b/autoload/prettier/job/async/neovim.vim @@ -37,8 +37,6 @@ endfunction " 2. extract common functionality either above to the runner or to some other module " " to test this it rellies on using nvim and having the flag -" g:prettier#nvim_unstable_async=1 - enabled -" " " note that somehow we exectuing both async and sync on nvim when using the autoformat function! s:onExit(status, info, out, err) abort diff --git a/autoload/prettier/job/runner.vim b/autoload/prettier/job/runner.vim index 92a27b9..60cb8a5 100644 --- a/autoload/prettier/job/runner.vim +++ b/autoload/prettier/job/runner.vim @@ -1,11 +1,7 @@ " TODO " move the bellow vim checks to UTILS -" -" TODO -" we are currently feature protecting async on NVIM with g:prettier#nvim_unstable_async -" we should remove this once its fully supported let s:isLegacyVim = v:version < 800 -let s:isNeoVim = has('nvim') && g:prettier#nvim_unstable_async +let s:isNeoVim = has('nvim') let s:isAsyncVim = !s:isLegacyVim && exists('*job_start') function! prettier#job#runner#run(cmd, startSelection, endSelection, async) abort diff --git a/plugin/prettier.vim b/plugin/prettier.vim index f70cadb..5de9caf 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -20,9 +20,6 @@ let g:loaded_prettier = 1 " autoformating enabled by default upon saving let g:prettier#autoformat = get(g:, 'prettier#autoformat', 1) -" experimental async flag will be disabled by default until is stable -let g:prettier#nvim_unstable_async = get(g:,'prettier#nvim_unstable_async', 0) - " path to prettier cli let g:prettier#exec_cmd_path = get(g:, 'prettier#exec_cmd_path', 0) -- cgit v1.3 From 98845cdbbe243f4a62adbd73cbe7febec1f41efa Mon Sep 17 00:00:00 2001 From: mitermayer Date: Thu, 10 May 2018 13:36:09 -0700 Subject: Adding presets - adding facebook presets as a configurable option to overwrite prettier defaults --- autoload/prettier.vim | 2 +- autoload/prettier/presets/fb.vim | 13 +++++++++++++ autoload/prettier/resolver/config.vim | 14 ++++++++++++++ autoload/prettier/resolver/preset.vim | 8 ++++++++ plugin/prettier.vim | 34 ++++++++++++++++++++++++++++++++-- 5 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 autoload/prettier/presets/fb.vim create mode 100644 autoload/prettier/resolver/preset.vim (limited to 'plugin') diff --git a/autoload/prettier.vim b/autoload/prettier.vim index c5e21e5..fae1ef8 100644 --- a/autoload/prettier.vim +++ b/autoload/prettier.vim @@ -72,7 +72,7 @@ function! prettier#Prettier(...) abort let l:config = getbufvar(bufnr('%'), 'prettier_ft_default_args', {}) if l:execCmd != -1 - let l:cmd = l:execCmd . prettier#resolver#config#buildCliArgs(l:config) + let l:cmd = l:execCmd . prettier#resolver#config#buildCliArgs(prettier#resolver#preset#build(l:config)) " close quickfix if it is opened call prettier#utils#quickfix#close() diff --git a/autoload/prettier/presets/fb.vim b/autoload/prettier/presets/fb.vim new file mode 100644 index 0000000..4715b88 --- /dev/null +++ b/autoload/prettier/presets/fb.vim @@ -0,0 +1,13 @@ +" Return facebook style config overwrite presets +function! prettier#presets#fb#config() abort + return { + \ 'bracketSpacing': 'false', + \ 'jsxBracketSameLine': 'true', + \ 'printWidth': 80, + \ 'parser': 'flow', + \ 'singleQuote': 'true', + \ 'tabWidth': 2, + \ 'trailingComma': 'all', + \ 'useTabs': 'false', + \ } +endfunction diff --git a/autoload/prettier/resolver/config.vim b/autoload/prettier/resolver/config.vim index ffdd8ff..91fc247 100644 --- a/autoload/prettier/resolver/config.vim +++ b/autoload/prettier/resolver/config.vim @@ -8,6 +8,18 @@ function! prettier#resolver#config#buildCliArgs(config) abort \ s:Flag_tab_width(a:config) . ' ' . \ s:Flag_print_width(a:config) . ' ' . \ s:Flag_parser(a:config) . ' ' . + \ ' --semi=' . + \ get(a:config, 'semi', g:prettier#config#semi) . + \ ' --single-quote=' . + \ get(a:config, 'singleQuote', g:prettier#config#single_quote) . + \ ' --bracket-spacing=' . + \ get(a:config, 'bracketSpacing', g:prettier#config#bracket_spacing) . + \ ' --jsx-bracket-same-line=' . + \ get(a:config, 'jsxBracketSameLine', g:prettier#config#jsx_bracket_same_line) . + \ ' --arrow-parens=' . + \ get(a:config, 'arrowParens', g:prettier#config#arrow_parens) . + \ ' --trailing-comma=' . + \ get(a:config, 'trailingComma', g:prettier#config#trailing_comma) . \ ' --config-precedence=' . \ get(a:config, 'configPrecedence', g:prettier#config#config_precedence) . \ ' --prose-wrap=' . @@ -17,6 +29,8 @@ function! prettier#resolver#config#buildCliArgs(config) abort \ ' --no-editorconfig '. \ ' --loglevel error '. \ ' --stdin ' + " TODO + " check to see if --no-editorconfig is still needed return l:cmd endfunction diff --git a/autoload/prettier/resolver/preset.vim b/autoload/prettier/resolver/preset.vim new file mode 100644 index 0000000..a0891d2 --- /dev/null +++ b/autoload/prettier/resolver/preset.vim @@ -0,0 +1,8 @@ +" Build config using predefined preset +function! prettier#resolver#preset#build(fileTypeConfigOverwrites) abort + if ( g:prettier#preset#config ==# 'fb' ) + return extend(prettier#presets#fb#config(), a:fileTypeConfigOverwrites) + endif + + return a:fileTypeConfigOverwrites +endfunction diff --git a/plugin/prettier.vim b/plugin/prettier.vim index 5de9caf..2bb5a39 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -29,6 +29,13 @@ 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) +" Don't leave the quicklist focused on error. +let g:prettier#quickfix_auto_focus = get(g:, 'prettier#quickfix_auto_focus', 1) + +" default|fb +" Use prettier defaults +let g:prettier#preset#config = get(g:,'prettier#preset#config', 'default') + " => Prettier CLI config " Max line length that prettier will wrap on: a number or 'auto' (use " textwidth). @@ -57,8 +64,31 @@ let g:prettier#config#config_precedence = get(g:, 'prettier#config#config_preced " default: 'preserve' let g:prettier#config#prose_wrap = get(g:, 'prettier#config#prose_wrap', 'preserve') -" Don't leave the quicklist focused on error. -let g:prettier#quickfix_auto_focus = get(g:, 'prettier#quickfix_auto_focus', 1) +" print semicolons +" default: 'true' +let g:prettier#config#semi = get(g:,'prettier#config#semi', 'true') + +" Use single quotes instead of double quotes. +" default: 'false' +let g:prettier#config#single_quote = get(g:,'prettier#config#single_quote', 'false') + +" print spaces between brackets +" default: 'true' +let g:prettier#config#bracket_spacing = get(g:,'prettier#config#bracket_spacing', 'true') + +" put > on the last line instead of new line +" default: 'false' +let g:prettier#config#jsx_bracket_same_line = get(g:,'prettier#config#jsx_bracket_same_line', 'false') + +" avoid wrapping a single arrow function param in parens +" avoid|always +" default: 'avoid' +let g:prettier#config#arrow_parens = get(g:,'prettier#config#arrow_parens', 'avoid') + +" Print trailing commas wherever possible when multi-line. +" none|es5|all +" default: 'none' +let g:prettier#config#trailing_comma = get(g:,'prettier#config#trailing_comma', 'none') " synchronous by default command! -nargs=? -range=% Prettier call prettier#Prettier(g:prettier#exec_cmd_async, , ) -- cgit v1.3 From ec6ede90f3b9948ed7063402189653f8d6721326 Mon Sep 17 00:00:00 2001 From: mitermayer Date: Mon, 28 May 2018 20:53:30 -0700 Subject: Enabling partial formatting but still maintaining support for fragment formatting --- README.md | 2 +- autoload/prettier.vim | 18 +++++++++++++++++- autoload/prettier/resolver/config.vim | 14 +++++++++++++- autoload/prettier/resolver/preset.vim | 2 +- autoload/prettier/utils/buffer.vim | 21 +++++++++++++++++++++ plugin/prettier.vim | 15 +++++++++++++-- 6 files changed, 66 insertions(+), 6 deletions(-) (limited to 'plugin') diff --git a/README.md b/README.md index 442a821..d0ec620 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ By default it will auto format **javascript**, **typescript**, **less**, **scss**, **css**, **json**, **graphql** and **markdown** files if they have/support the "@format" pragma annotation in the header of the file. -![vim-prettier](/media/vim-prettier.gif?raw=true "vim-prettier") +![vim-prettier](/media/vim-prettier.gif?raw=true 'vim-prettier') ### INSTALL diff --git a/autoload/prettier.vim b/autoload/prettier.vim index fae1ef8..0e8ade3 100644 --- a/autoload/prettier.vim +++ b/autoload/prettier.vim @@ -69,14 +69,30 @@ function! prettier#Prettier(...) abort let l:async = a:0 > 0 ? a:1 : 0 let l:startSelection = a:0 > 1 ? a:2 : 1 let l:endSelection = a:0 > 2 ? a:3 : line('$') + let l:hasSelection = a:0 > 2 ? 1 : 0 + let l:partialFormat = a:0 > 3 && a:4 ? a:4 : 0 let l:config = getbufvar(bufnr('%'), 'prettier_ft_default_args', {}) + let l:partialFormatEnabled = l:hasSelection && l:partialFormat if l:execCmd != -1 - let l:cmd = l:execCmd . prettier#resolver#config#buildCliArgs(prettier#resolver#preset#build(l:config)) + " TODO + " => we should make sure we can resolve --range-start and --range-end when required + " => when the above is required we should also update l:startSelection to '1' and l:endSelection to line('$') + let l:cmd = l:execCmd . prettier#resolver#config#resolve( + \ prettier#resolver#preset#resolve(l:config), + \ l:partialFormatEnabled, + \ l:startSelection, + \ l:endSelection) " close quickfix if it is opened call prettier#utils#quickfix#close() + " we will be using portion formatting, so we need to send entire buffer to prettier + if l:partialFormatEnabled + let l:startSelection = 1 + let l:endSelection = line('$') + endif + " format buffer call prettier#job#runner#run(l:cmd, l:startSelection, l:endSelection, l:async) else diff --git a/autoload/prettier/resolver/config.vim b/autoload/prettier/resolver/config.vim index 91fc247..eae6725 100644 --- a/autoload/prettier/resolver/config.vim +++ b/autoload/prettier/resolver/config.vim @@ -1,6 +1,6 @@ " By default we will default to our internal " configuration settings for prettier -function! prettier#resolver#config#buildCliArgs(config) abort +function! prettier#resolver#config#resolve(config, hasSelection, start, end) abort " Allow params to be passed as json format " convert bellow usage of globals to a get function o the params defaulting to global " TODO: Use a list, filter() and join() to get a nicer list of args. @@ -8,6 +8,7 @@ function! prettier#resolver#config#buildCliArgs(config) abort \ s:Flag_tab_width(a:config) . ' ' . \ s:Flag_print_width(a:config) . ' ' . \ s:Flag_parser(a:config) . ' ' . + \ s:Flag_range_delimiter(a:config, a:hasSelection, a:start, a:end) . ' ' . \ ' --semi=' . \ get(a:config, 'semi', g:prettier#config#semi) . \ ' --single-quote=' . @@ -34,6 +35,17 @@ function! prettier#resolver#config#buildCliArgs(config) abort return l:cmd endfunction +" Returns either '--range-start X --range-end Y' or an empty string. +function! s:Flag_range_delimiter(config, partialFormatEnabled, start, end) abort + if (!a:partialFormatEnabled) + return '' + endif + + let l:range = prettier#utils#buffer#getCharRange(a:start, a:end) + + return '--range-start=' . l:range[0] . ' --range-end=' . l:range[1] +endfunction + " Returns '--tab-width=NN' function! s:Flag_tab_width(config) abort let l:value = get(a:config, 'tabWidth', g:prettier#config#tab_width) diff --git a/autoload/prettier/resolver/preset.vim b/autoload/prettier/resolver/preset.vim index a0891d2..03f98ee 100644 --- a/autoload/prettier/resolver/preset.vim +++ b/autoload/prettier/resolver/preset.vim @@ -1,5 +1,5 @@ " Build config using predefined preset -function! prettier#resolver#preset#build(fileTypeConfigOverwrites) abort +function! prettier#resolver#preset#resolve(fileTypeConfigOverwrites) abort if ( g:prettier#preset#config ==# 'fb' ) return extend(prettier#presets#fb#config(), a:fileTypeConfigOverwrites) endif diff --git a/autoload/prettier/utils/buffer.vim b/autoload/prettier/utils/buffer.vim index 1e11ddb..0b3c619 100644 --- a/autoload/prettier/utils/buffer.vim +++ b/autoload/prettier/utils/buffer.vim @@ -33,3 +33,24 @@ endfunction function! prettier#utils#buffer#createBufferFromUpdatedLines(lines, start, end) abort return getbufline(bufnr('%'), 1, a:start - 1) + a:lines + getbufline(bufnr('%'), a:end + 1, '$') endfunction + +" Adapted from https://github.com/farazdagi/vim-go-ide +function! s:getCharPosition(line, col) + if &encoding !=# 'utf-8' + " On utf-8 enconding we can't just use bytes so we need to make sure we can count the + " characters, we do that by adding the text into a temporary buffer and counting the chars + let l:buf = a:line == 1 ? '' : (join(getline(1, a:line - 1), "\n") . "\n") + let l:buf .= a:col == 1 ? '' : getline('.')[:a:col - 2] + return len(iconv(l:buf, &encoding, 'utf-8')) + endif + " On non utf-8 the line byte should match the character + return line2byte(a:line) + (a:col - 2) +endfun + +" Returns [start, end] byte range when on visual mode +function! prettier#utils#buffer#getCharRange(startSelection, endSelection) abort + let l:range = [] + call add(l:range, s:getCharPosition(a:startSelection, col("'<"))) + call add(l:range, s:getCharPosition(a:endSelection, col("'>"))) + return l:range +endfunction diff --git a/plugin/prettier.vim b/plugin/prettier.vim index 2bb5a39..4a3db64 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -32,6 +32,9 @@ let g:prettier#quickfix_enabled = get(g:, 'prettier#quickfix_enabled', 1) " Don't leave the quicklist focused on error. let g:prettier#quickfix_auto_focus = get(g:, 'prettier#quickfix_auto_focus', 1) +" Send to prettier entire buffer and use --range-start and --range-end as delimter +let g:prettier#partial_format = get(g:, 'prettier#partial_format', 0) + " default|fb " Use prettier defaults let g:prettier#preset#config = get(g:,'prettier#preset#config', 'default') @@ -91,10 +94,10 @@ let g:prettier#config#arrow_parens = get(g:,'prettier#config#arrow_parens', 'avo let g:prettier#config#trailing_comma = get(g:,'prettier#config#trailing_comma', 'none') " synchronous by default -command! -nargs=? -range=% Prettier call prettier#Prettier(g:prettier#exec_cmd_async, , ) +command! -nargs=? -range=% Prettier call prettier#Prettier(g:prettier#exec_cmd_async, , , g:prettier#partial_format) " prettier async -command! -nargs=? -range=% PrettierAsync call prettier#Prettier(1, , ) +command! -nargs=? -range=% PrettierAsync call prettier#Prettier(1, , , g:prettier#partial_format) " prints vim-prettier version command! -nargs=? -range=% PrettierVersion echom '0.2.6' @@ -108,12 +111,20 @@ command! -nargs=? -range=% PrettierCliVersion call prettier#PrettierCli('--versi " prints prettier resolved cli path command! -nargs=? -range=% PrettierCliPath call prettier#PrettierCliPath() +" sends selected text to prettier cli for formatting +command! -nargs=? -range=% PrettierFragment call prettier#Prettier(g:prettier#exec_cmd_async, , , 0) + +" sends entire buffer to prettier cli but format just selection +command! -nargs=? -range=% PrettierPartial call prettier#Prettier(g:prettier#exec_cmd_async, , , 1) + " map command if !hasmapto('(Prettier)') && maparg('p', 'n') ==# '' nmap p (Prettier) endif nnoremap (Prettier) :Prettier nnoremap (PrettierAsync) :PrettierAsync +nnoremap (PrettierFragment) :PrettierFragment +nnoremap (PrettierPartial) :PrettierPartial nnoremap (PrettierVersion) :PrettierVersion nnoremap (PrettierCli) :PrettierCli nnoremap (PrettierCliVersion) :PrettierCliVersion -- cgit v1.3 From be9d60045f40928f425937e62ec1b8fbf3601b4a Mon Sep 17 00:00:00 2001 From: mitermayer Date: Mon, 5 Nov 2018 12:28:45 -0800 Subject: Bumping 1.0 tag to alpha --- autoload/prettier.vim | 2 +- doc/prettier.txt | 2 +- package.json | 2 +- plugin/prettier.vim | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) (limited to 'plugin') diff --git a/autoload/prettier.vim b/autoload/prettier.vim index e2ba919..3241f48 100644 --- a/autoload/prettier.vim +++ b/autoload/prettier.vim @@ -5,7 +5,7 @@ " Name Of File: prettier.vim " Description: A vim plugin wrapper for prettier, pre-configured with custom default prettier settings. " Maintainer: Mitermayer Reis -" Version: 0.2.7 +" Version: 1.0.0-alpha " Usage: Use :help vim-prettier-usage, or visit https://github.com/prettier/vim-prettier " "========================================================================================================== diff --git a/doc/prettier.txt b/doc/prettier.txt index db4223d..3760ca7 100644 --- a/doc/prettier.txt +++ b/doc/prettier.txt @@ -8,7 +8,7 @@ Author: Mitermayer Reis WebSite: https://prettier.io/ Repository: https://github.com/prettier/vim-prettier License: MIT style license -Version: 0.2.7 +Version: 1.0.0-alpha ============================================================================== CONTENTS *vim-prettier-contents* diff --git a/package.json b/package.json index 901597e..cc35f7c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vim-prettier", "author": "Mitermayer Reis ", - "version": "0.2.7", + "version": "1.0.0-alpha", "description": "Vim plugin for prettier", "license": "MIT", "repository": { diff --git a/plugin/prettier.vim b/plugin/prettier.vim index 4bb0773..bad2ab0 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -5,7 +5,7 @@ " Name Of File: prettier.vim " Description: A vim plugin wrapper for prettier, pre-configured with custom default prettier settings. " Maintainer: Mitermayer Reis -" Version: 0.2.7 +" Version: 1.0.0-alpha " Usage: Use :help vim-prettier-usage, or visit https://github.com/prettier/vim-prettier " "========================================================================================================== @@ -100,7 +100,7 @@ command! -nargs=? -range=% Prettier call prettier#Prettier(g:prettier#exec_cmd_a command! -nargs=? -range=% PrettierAsync call prettier#Prettier(1, , , g:prettier#partial_format) " prints vim-prettier version -command! -nargs=? -range=% PrettierVersion echom '0.2.7' +command! -nargs=? -range=% PrettierVersion echom '1.0.0-alpha' " call prettier cli command! -nargs=? -range=% PrettierCli call prettier#PrettierCli() -- cgit v1.3 From 1a0042858389b716cccb38776bd30b287add80dd Mon Sep 17 00:00:00 2001 From: Shulhan Date: Sat, 23 Feb 2019 07:06:57 +0700 Subject: Set default "config_precendence" to "file-override" If user have custom file type plugin that set "parser" option, calling ":Prettier" will return error "Prettier: failed to parse buffer". This was caused by running prettier with CLI option "--parser X" with "--config-precedence prefer_file" will cause prettier to ignore the "parser" option. Fix #178 --- README.md | 4 ++-- doc/prettier.txt | 4 ++-- plugin/prettier.vim | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'plugin') diff --git a/README.md b/README.md index ca9b625..81438b7 100644 --- a/README.md +++ b/README.md @@ -217,8 +217,8 @@ let g:prettier#config#use_tabs = 'auto' let g:prettier#config#parser = '' " cli-override|file-override|prefer-file -" default: 'prefer-file' -let g:prettier#config#config_precedence = 'prefer-file' +" default: 'file-override' +let g:prettier#config#config_precedence = 'file-override' " always|never|preserve " default: 'preserve' diff --git a/doc/prettier.txt b/doc/prettier.txt index b631657..2bd3fc8 100644 --- a/doc/prettier.txt +++ b/doc/prettier.txt @@ -176,8 +176,8 @@ However they can be configured by: let g:prettier#config#parser = '' " cli-override|file-override|prefer-file - " default: 'prefer-file' - let g:prettier#config#config_precedence = 'prefer-file' + " default: 'file-override' + let g:prettier#config#config_precedence = 'file-override' " always|never|preserve " default: 'preserve' diff --git a/plugin/prettier.vim b/plugin/prettier.vim index bad2ab0..caed7bf 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -60,8 +60,8 @@ let g:prettier#config#use_tabs = get(g:,'prettier#config#use_tabs', 'auto') let g:prettier#config#parser = get(g:,'prettier#config#parser', '') " cli-override|file-override|prefer-file -" default: 'prefer-file' -let g:prettier#config#config_precedence = get(g:, 'prettier#config#config_precedence', 'prefer-file') +" default: 'file-override' +let g:prettier#config#config_precedence = get(g:, 'prettier#config#config_precedence', 'file-override') " always|never|preserve " default: 'preserve' -- cgit v1.3 From 28004235abbff13c90704ca4d9b2949c55e28601 Mon Sep 17 00:00:00 2001 From: mitermayer Date: Mon, 26 Aug 2019 13:10:07 -0700 Subject: porting-master-fixes-to-release-1.x - Porting fixes done on 5779a87d901da3f44991feb3a6480b1156c37f3f - Porting fixes done on c91d1bc5c15677fdb6585fc54c680809329ee88a - Porting fixes done on c0f7d81faf849589688c4584edb9c3b8d50afb84 - Fixing linting from 1c601bcba1eed6faa15b255aeb765a12717d7de3 --- README.md | 7 ++++++- autoload/prettier/resolver/config.vim | 5 +++-- ftplugin/html.vim | 2 +- plugin/prettier.vim | 4 ++++ 4 files changed, 14 insertions(+), 4 deletions(-) (limited to 'plugin') diff --git a/README.md b/README.md index bcfecb2..ae7ad8e 100644 --- a/README.md +++ b/README.md @@ -223,8 +223,13 @@ let g:prettier#config#config_precedence = 'file-override' " always|never|preserve " default: 'preserve' let g:prettier#config#prose_wrap = 'preserve' + +" css|strict|ignore +" default: 'css' +let g:prettier#config#html_whitespace_sensitivity = 'css' ``` ### REQUIREMENT(S) -If prettier installation can't be found no code formatting will happen +If the `prettier` executable can't be found by Vim, no code formatting will happen + diff --git a/autoload/prettier/resolver/config.vim b/autoload/prettier/resolver/config.vim index 2db11b5..81d558d 100644 --- a/autoload/prettier/resolver/config.vim +++ b/autoload/prettier/resolver/config.vim @@ -25,8 +25,9 @@ function! prettier#resolver#config#resolve(config, hasSelection, start, end) abo \ get(a:config, 'configPrecedence', g:prettier#config#config_precedence) . \ ' --prose-wrap=' . \ get(a:config, 'proseWrap', g:prettier#config#prose_wrap) . - \ ' --stdin-filepath=' . - \ simplify(expand('%:p')) . + \ ' --html-whitespace-sensitivity ' . + \ get(a:config, 'htmlWhitespaceSensitivity', g:prettier#config#html_whitespace_sensitivity) . + \ ' --stdin-filepath= "'.simplify(expand('%:p')).'"' . \ ' --loglevel error '. \ ' --stdin ' return l:cmd diff --git a/ftplugin/html.vim b/ftplugin/html.vim index 76ad0af..d2f059d 100644 --- a/ftplugin/html.vim +++ b/ftplugin/html.vim @@ -1,6 +1,6 @@ " markdown files run this as well " https://stackoverflow.com/questions/22839269/why-does-vim-default-markdown-ftplugin-source-html-ftplugins-is-there-any-ways -if &ft !~# 'markdown' +if &filetype !~# 'markdown' let b:prettier_ft_default_args = { \ 'parser': 'html', \ } diff --git a/plugin/prettier.vim b/plugin/prettier.vim index caed7bf..19b4002 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -67,6 +67,10 @@ let g:prettier#config#config_precedence = get(g:, 'prettier#config#config_preced " default: 'preserve' let g:prettier#config#prose_wrap = get(g:, 'prettier#config#prose_wrap', 'preserve') +" css|strict|ignore +" default: 'css' +let g:prettier#config#html_whitespace_sensitivity = get(g:, 'prettier#config#html_whitespace_sensitivity', 'css') + " print semicolons " default: 'true' let g:prettier#config#semi = get(g:,'prettier#config#semi', 'true') -- cgit v1.3 From 7ac46762931442491b13401411a1b4eb65272099 Mon Sep 17 00:00:00 2001 From: mitermayer Date: Thu, 12 Sep 2019 23:54:51 +0000 Subject: issues/184-fixing-undo-step - Adding support for require-pragma - Our previous undo implementation tried to be naive on implementing require-pragma, and created some undo bugs due to it. This diff enables us to use the prettier upstream support for require-pragma - On subsequent PR's we will completetly phase out the previous undo implementation in favour to this one in order to fix bug https://github.com/prettier/vim-prettier/issues/184 --- README.md | 4 ++++ autoload/prettier/resolver/config.vim | 2 ++ doc/prettier.txt | 4 ++++ plugin/prettier.vim | 3 +++ 4 files changed, 13 insertions(+) (limited to 'plugin') diff --git a/README.md b/README.md index 04e2243..ee2ff31 100644 --- a/README.md +++ b/README.md @@ -227,6 +227,10 @@ let g:prettier#config#prose_wrap = 'preserve' " css|strict|ignore " default: 'css' let g:prettier#config#html_whitespace_sensitivity = 'css' + +" false|true +" default: 'false' +let g:prettier#config#require_pragma = 'false' ``` ### REQUIREMENT(S) diff --git a/autoload/prettier/resolver/config.vim b/autoload/prettier/resolver/config.vim index 029bec4..b22f11a 100644 --- a/autoload/prettier/resolver/config.vim +++ b/autoload/prettier/resolver/config.vim @@ -28,6 +28,8 @@ function! prettier#resolver#config#resolve(config, hasSelection, start, end) abo \ ' --html-whitespace-sensitivity ' . \ get(a:config, 'htmlWhitespaceSensitivity', g:prettier#config#html_whitespace_sensitivity) . \ ' --stdin-filepath="'.simplify(expand('%:p')).'"' . + \ ' --require-pragma=' . + \ get(a:config, 'requirePragma', g:prettier#config#require_pragma) . \ ' --loglevel error '. \ ' --stdin ' return l:cmd diff --git a/doc/prettier.txt b/doc/prettier.txt index 0a8dc30..11ed194 100644 --- a/doc/prettier.txt +++ b/doc/prettier.txt @@ -185,6 +185,10 @@ However they can be configured by: " css|strict|ignore let g:prettier#config#html_whitespace_sensitivity = 'css' + + " false|true + " default: 'false' + let g:prettier#config#require_pragma = 'false' < ============================================================================== REQUIREMENT(S) *vim-prettier-requirements* diff --git a/plugin/prettier.vim b/plugin/prettier.vim index 19b4002..d3bee5a 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -97,6 +97,9 @@ let g:prettier#config#arrow_parens = get(g:,'prettier#config#arrow_parens', 'avo " default: 'none' let g:prettier#config#trailing_comma = get(g:,'prettier#config#trailing_comma', 'none') +" restrict itself to only format files that contain a special comment @prettier or @format +let g:prettier#config#require_pragma= get(g:, 'prettier#config#require_pragma', 'false') + " synchronous by default command! -nargs=? -range=% Prettier call prettier#Prettier(g:prettier#exec_cmd_async, , , g:prettier#partial_format) -- cgit v1.3 From 3dc6684302ff2749570d938e1d49862db0e2648c Mon Sep 17 00:00:00 2001 From: mitermayer Date: Fri, 13 Sep 2019 21:38:53 +0000 Subject: issues/184-fixing-undo-step - Removing previous naive implementation of requirePragma - This commit ensures that we use `prettier` default way to identify pragmas for the auto save and remove our previous naive implementation --- autoload/prettier.vim | 33 ++++++--------------------------- ftplugin/html.vim | 7 ------- plugin/prettier.vim | 7 +++++++ 3 files changed, 13 insertions(+), 34 deletions(-) (limited to 'plugin') diff --git a/autoload/prettier.vim b/autoload/prettier.vim index 3241f48..e66f4b7 100644 --- a/autoload/prettier.vim +++ b/autoload/prettier.vim @@ -34,33 +34,9 @@ function! prettier#PrettierCli(user_input) abort endif endfunction -" Allows @format pragma support +" Allows @format and @prettier pragma support upon saving function! prettier#Autoformat(...) abort - let l:curPos = getpos('.') - let l:maxLineLookup = 50 - let l:maxTimeLookupMs = 500 - let l:pattern = '@format' - let l:search = @/ - let l:winview = winsaveview() - - " we need to move selection to the top before looking up to avoid - " scanning a very long file - call cursor(1, 1) - - " Search starting at the start of the document - if search(l:pattern, 'n', l:maxLineLookup, l:maxTimeLookupMs) > 0 - " autoformat async - call prettier#Prettier(1) - endif - - " Restore the selection and if greater then before it defaults to end - call cursor(l:curPos[1], l:curPos[2]) - - " Restore view - call winrestview(l:winview) - - " Restore search - let @/=l:search + call prettier#Prettier(1, 1, line('$'), 0, { 'requirePragma': 'true'}) endfunction " Main prettier command @@ -71,9 +47,12 @@ function! prettier#Prettier(...) abort let l:endSelection = a:0 > 2 ? a:3 : line('$') let l:hasSelection = a:0 > 2 ? 1 : 0 let l:partialFormat = a:0 > 3 && a:4 ? a:4 : 0 - let l:config = getbufvar(bufnr('%'), 'prettier_ft_default_args', {}) let l:partialFormatEnabled = l:hasSelection && l:partialFormat + let l:overWrite = a:0 > 4 ? a:5 : {} + let l:bufferConfig = getbufvar(bufnr('%'), 'prettier_ft_default_args', {}) + let l:config = extend(l:bufferConfig, l:overWrite) + if l:execCmd != -1 " TODO " => we should make sure we can resolve --range-start and --range-end when required diff --git a/ftplugin/html.vim b/ftplugin/html.vim index d2f059d..58ab258 100644 --- a/ftplugin/html.vim +++ b/ftplugin/html.vim @@ -5,10 +5,3 @@ if &filetype !~# 'markdown' \ 'parser': 'html', \ } endif - -augroup Prettier - autocmd! - if g:prettier#autoformat - autocmd BufWritePre *.html call prettier#Autoformat() - endif -augroup end diff --git a/plugin/prettier.vim b/plugin/prettier.vim index d3bee5a..aafa7a2 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -136,3 +136,10 @@ nnoremap (PrettierVersion) :PrettierVersion nnoremap (PrettierCli) :PrettierCli nnoremap (PrettierCliVersion) :PrettierCliVersion nnoremap (PrettierCliPath) :PrettierCliPath + +augroup Prettier + autocmd! + if g:prettier#autoformat + autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html call prettier#Autoformat() + endif +augroup end -- cgit v1.3 From c73822ba57d432cfc073c6e3d485c0df97cd56ea Mon Sep 17 00:00:00 2001 From: mitermayer Date: Sat, 14 Sep 2019 05:21:20 +0000 Subject: issues/184-fixing-undo-step - Ensuring that autoformat does not gets trigger autoformat --- plugin/prettier.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugin') diff --git a/plugin/prettier.vim b/plugin/prettier.vim index aafa7a2..928630b 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -140,6 +140,6 @@ nnoremap (PrettierCliPath) :PrettierCliPath augroup Prettier autocmd! if g:prettier#autoformat - autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html call prettier#Autoformat() + autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html noautocmd | call prettier#Autoformat() endif augroup end -- cgit v1.3 From 29c1ed25fa649d6f71f6c6bb24a07a262d2f45ca Mon Sep 17 00:00:00 2001 From: mitermayer Date: Sat, 14 Sep 2019 05:38:22 +0000 Subject: making-auto-format-disabled-by-default - Making autoformat disabled by default - This is a breaking change as on versions 0.x autoformat was enabled by default. This should ensure users dont need to disable autoformat anymore in their vimrc --- README.md | 13 +++++-------- doc/prettier.txt | 11 ++++------- plugin/prettier.vim | 2 +- 3 files changed, 10 insertions(+), 16 deletions(-) (limited to 'plugin') diff --git a/README.md b/README.md index ee2ff31..cf36367 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ By default it will auto format **javascript**, **typescript**, **less**, **scss**, **css**, **json**, **graphql** and **markdown** files if they have/support the "@format" pragma annotation in the header of the file. -![vim-prettier](/media/vim-prettier.gif?raw=true 'vim-prettier') +![vim-prettier](/media/vim-prettier.gif?raw=true "vim-prettier") ### INSTALL @@ -127,10 +127,10 @@ Change the mapping to run from the default of `p` nmap py (Prettier) ``` -Disable auto formatting of files that have "@format" tag +Enable auto formatting of files that have "@format" or "@prettier" tag ```vim -let g:prettier#autoformat = 0 +let g:prettier#autoformat = 1 ``` Set the prettier CLI executable path @@ -164,20 +164,18 @@ By default we auto focus on the quickfix when there are errors but can also be d let g:prettier#quickfix_auto_focus = 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 +To enable vim-prettier to auto run in files without requiring the "@format" or "@prettier" doc tag. +First ensure that `g:prettier#autoformat` is not enabled on your `vimrc` (it should be disabled by default), then update to your own custom behaviour Running before saving sync: ```vim -let g:prettier#autoformat = 0 autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html Prettier ``` Running before saving async (vim 8+): ```vim -let g:prettier#autoformat = 0 autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html PrettierAsync ``` @@ -187,7 +185,6 @@ Running before saving, changing text or leaving insert mode: " 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,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html PrettierAsync ``` diff --git a/doc/prettier.txt b/doc/prettier.txt index 11ed194..c2b38fd 100644 --- a/doc/prettier.txt +++ b/doc/prettier.txt @@ -111,9 +111,9 @@ to prettier, this allows for faster formatting but wont preserve indentation. ============================================================================== CONFIGURATION *vim-prettier-configuration* -Disable auto formatting of files that have "@format" tag +Enable auto formatting of files that have "@format" or "@prettier" tag > - let g:prettier#autoformat = 0 + let g:prettier#autoformat = 1 < Set the prettier CLI executable path > @@ -131,24 +131,21 @@ By default we auto focus on the quickfix when there are errors but can also be d > let g:prettier#quickfix_auto_focus = 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 +To enable vim-prettier to auto run in files without requiring the "@format" or "@prettier" doc tag. +First ensure that `g:prettier#autoformat` is not enabled on your `vimrc` (it should be disabled by default), then update to your own custom behaviour Running before saving sync: > - let g:prettier#autoformat = 0 autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html Prettier < Running before saving async (vim 8+): > - let g:prettier#autoformat = 0 autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html PrettierAsync < Running before saving, changing text or leaving insert mode: > " 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,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html PrettierAsync < Overwrite default prettier configuration diff --git a/plugin/prettier.vim b/plugin/prettier.vim index 928630b..079cb05 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -18,7 +18,7 @@ let g:loaded_prettier = 1 " => Plugin config " autoformating enabled by default upon saving -let g:prettier#autoformat = get(g:, 'prettier#autoformat', 1) +let g:prettier#autoformat = get(g:, 'prettier#autoformat', 0) " path to prettier cli let g:prettier#exec_cmd_path = get(g:, 'prettier#exec_cmd_path', 0) -- cgit v1.3 From 322018fdeb5c5a5d3f2a68612d86b35fee22f7ea Mon Sep 17 00:00:00 2001 From: mitermayer Date: Sat, 14 Sep 2019 05:41:23 +0000 Subject: making-auto-format-disabled-by-default - Updating comment description - updating comment description to match new behaviour --- plugin/prettier.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugin') diff --git a/plugin/prettier.vim b/plugin/prettier.vim index 079cb05..83656d3 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -17,7 +17,7 @@ endif let g:loaded_prettier = 1 " => Plugin config -" autoformating enabled by default upon saving +" autoformating disabled by default upon saving let g:prettier#autoformat = get(g:, 'prettier#autoformat', 0) " path to prettier cli -- cgit v1.3 From 41d9c4778a8dc0439afee9c9000d7fa5b4b8be17 Mon Sep 17 00:00:00 2001 From: Adam Macumber Date: Wed, 9 Oct 2019 15:44:55 -0400 Subject: Toggle the autoformat setting based on config file presence. --- autoload/prettier.vim | 10 ++++++++++ plugin/prettier.vim | 21 +++++++++++++++++++++ 2 files changed, 31 insertions(+) (limited to 'plugin') diff --git a/autoload/prettier.vim b/autoload/prettier.vim index e66f4b7..f55fb21 100644 --- a/autoload/prettier.vim +++ b/autoload/prettier.vim @@ -78,3 +78,13 @@ function! prettier#Prettier(...) abort call prettier#logging#error#log('EXECUTABLE_NOT_FOUND_ERROR') endif endfunction + +" Set autoformat toggle based on whether config file was found. +function! prettier#IsConfigPresent(config_files) + for config_file in a:config_files + if filereadable(findfile(config_file, '.;')) + return 1 + endif + endfor + return 0 +endfunction diff --git a/plugin/prettier.vim b/plugin/prettier.vim index 83656d3..4ffa9cb 100644 --- a/plugin/prettier.vim +++ b/plugin/prettier.vim @@ -20,6 +20,19 @@ let g:loaded_prettier = 1 " autoformating disabled by default upon saving let g:prettier#autoformat = get(g:, 'prettier#autoformat', 0) +" whether to turn autoformatting on if a prettier config file is found +let g:prettier#autoformat_config_present = get(g:, 'prettier#autoformat_config_present', 0) + +" prettier config files to search current directory and parent directories for +let g:prettier#autoformat_config_files = get(g:, 'prettier#autoformat_config_files', [ + \'.prettierrc', + \'.prettierrc.yml', + \'.prettierrc.yaml', + \'.prettierrc.js', + \'.prettierrc.config.js', + \'.prettierrc.json' + \'.prettierrc.toml']) + " path to prettier cli let g:prettier#exec_cmd_path = get(g:, 'prettier#exec_cmd_path', 0) @@ -139,6 +152,14 @@ nnoremap (PrettierCliPath) :PrettierCliPath augroup Prettier autocmd! + if g:prettier#autoformat_config_present + if prettier#IsConfigPresent(g:prettier#autoformat_config_files) + let g:prettier#autoformat = 1 + else + let g:prettier#autoformat = 0 + endif + endif + if g:prettier#autoformat autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html noautocmd | call prettier#Autoformat() endif -- cgit v1.3