aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/prettier.vim2
-rw-r--r--autoload/prettier/presets/fb.vim13
-rw-r--r--autoload/prettier/resolver/config.vim14
-rw-r--r--autoload/prettier/resolver/preset.vim8
-rw-r--r--plugin/prettier.vim34
5 files changed, 68 insertions, 3 deletions
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, <line1>, <line2>)