aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/prettier/resolver/config.vim73
1 files changed, 47 insertions, 26 deletions
diff --git a/autoload/prettier/resolver/config.vim b/autoload/prettier/resolver/config.vim
index 2b66ede..abdbb46 100644
--- a/autoload/prettier/resolver/config.vim
+++ b/autoload/prettier/resolver/config.vim
@@ -4,12 +4,18 @@ function! prettier#resolver#config#resolve(config, hasSelection, start, end) abo
" 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.
- let l:cmd = s:Flag_use_tabs(a:config) . ' ' .
- \ s:Flag_tab_width(a:config) . ' ' .
- \ s:Flag_print_width(a:config) . ' ' .
- \ s:Flag_parser(a:config) . ' ' .
- \ s:Flag_range_start(a:config, a:hasSelection, a:start) . ' ' .
- \ s:Flag_range_end(a:config, a:hasSelection, a:end) . ' ' .
+ let l:config_and_sel = {
+ \ 'config': a:config,
+ \ 'hasSelection': a:hasSelection,
+ \ 'start': a:start,
+ \ 'end': a:end}
+
+ let l:cmd = s:Flag_use_tabs(l:config_and_sel, '--use-tabs', {}) . ' ' .
+ \ s:Flag_tab_width(l:config_and_sel, '--tab-width', {}) . ' ' .
+ \ s:Flag_print_width(l:config_and_sel, '--print-width', {}) . ' ' .
+ \ s:Flag_parser(l:config_and_sel, '--parser', {}) . ' ' .
+ \ s:Flag_range_start(l:config_and_sel, '', {}) . ' ' .
+ \ s:Flag_range_end(l:config_and_sel, '', {}) . ' ' .
\ ' --semi=' .
\ get(a:config, 'semi', g:prettier#config#semi) .
\ ' --single-quote=' .
@@ -28,42 +34,47 @@ function! prettier#resolver#config#resolve(config, hasSelection, start, end) abo
\ get(a:config, 'proseWrap', g:prettier#config#prose_wrap) .
\ ' --html-whitespace-sensitivity ' .
\ get(a:config, 'htmlWhitespaceSensitivity', g:prettier#config#html_whitespace_sensitivity) .
- \ ' ' . s:Flag_stdin_filepath() .
+ \ ' ' . s:Flag_stdin_filepath(l:config_and_sel, '--stdin-filepath', {}) .
\ ' --require-pragma=' .
\ get(a:config, 'requirePragma', g:prettier#config#require_pragma) .
\ ' --end-of-line=' .
\ get(a:config, 'endOfLine', g:prettier#config#end_of_line) .
- \ ' ' . s:Flag_loglevel() .
- \ ' ' . s:Flag_stdin()
+ \ ' ' . s:Flag_loglevel(l:config_and_sel, '--loglevel', {}) .
+ \ ' ' . s:Flag_stdin(l:config_and_sel, '--stdin', {})
return l:cmd
endfunction
" Returns either '--range-start X' or an empty string.
-function! s:Flag_range_start(config, partialFormatEnabled, start) abort
- if (!a:partialFormatEnabled)
+function! s:Flag_range_start(config_and_sel, ...) abort
+ if (!a:config_and_sel.hasSelection)
return ''
endif
- let l:rangeStart = prettier#utils#buffer#getCharRangeStart(a:start)
+ let l:rangeStart =
+ \ prettier#utils#buffer#getCharRangeStart(a:config_and_sel.start)
return '--range-start=' . l:rangeStart
endfunction
" Returns either '--range-end Y' or an empty string.
-function! s:Flag_range_end(config, partialFormatEnabled, end) abort
- if (!a:partialFormatEnabled)
+function! s:Flag_range_end(config_and_sel, ...) abort
+ if (!a:config_and_sel.hasSelection)
return ''
endif
- let l:rangeEnd = prettier#utils#buffer#getCharRangeEnd(a:end)
+ let l:rangeEnd =
+ \ prettier#utils#buffer#getCharRangeEnd(a:config_and_sel.end)
return '--range-end=' . l:rangeEnd
endfunction
" Returns '--tab-width=NN'
-function! s:Flag_tab_width(config) abort
- let l:value = get(a:config, 'tabWidth', g:prettier#config#tab_width)
+function! s:Flag_tab_width(config_and_sel, ...) abort
+ let l:value = get(
+ \ a:config_and_sel.config,
+ \ 'tabWidth',
+ \ g:prettier#config#tab_width)
if (l:value ==# 'auto')
let l:value = prettier#utils#shim#shiftwidth()
@@ -73,8 +84,12 @@ function! s:Flag_tab_width(config) abort
endfunction
" Returns either '--use-tabs' or an empty string.
-function! s:Flag_use_tabs(config) abort
- let l:value = get(a:config, 'useTabs', g:prettier#config#use_tabs)
+function! s:Flag_use_tabs(config_and_sel, ...) abort
+ let l:value = get(
+ \ a:config_and_sel.config,
+ \ 'useTabs',
+ \ g:prettier#config#use_tabs)
+
if (l:value ==# 'auto')
let l:value = &expandtab ? 'false' : 'true'
endif
@@ -87,8 +102,11 @@ function! s:Flag_use_tabs(config) abort
endfunction
" Returns '--print-width=NN' or ''
-function! s:Flag_print_width(config) abort
- let l:value = get(a:config, 'printWidth', g:prettier#config#print_width)
+function! s:Flag_print_width(config_and_sel, ...) abort
+ let l:value = get(
+ \ a:config_and_sel.config,
+ \ 'printWidth',
+ \ g:prettier#config#print_width)
if (l:value ==# 'auto')
let l:value = &textwidth
@@ -102,8 +120,11 @@ function! s:Flag_print_width(config) abort
endfunction
" Returns '--parser=PARSER' or ''
-function! s:Flag_parser(config) abort
- let l:value = get(a:config, 'parser', g:prettier#config#parser)
+function! s:Flag_parser(config_and_sel, ...) abort
+ let l:value = get(
+ \ a:config_and_sel.config,
+ \ 'parser',
+ \ g:prettier#config#parser)
if (l:value !=# '')
return '--parser=' . l:value
@@ -114,19 +135,19 @@ endfunction
" Returns '--stdin-filepath=' concatenated with the full path of the opened
" file.
-function! s:Flag_stdin_filepath() abort
+function! s:Flag_stdin_filepath(...) abort
let l:current_file = simplify(expand('%:p'))
return '--stdin-filepath="' . l:current_file . '"'
endfunction
" Returns '--loglevel error'.
-function! s:Flag_loglevel() abort
+function! s:Flag_loglevel(config_and_sel, flag, props) abort
let l:level = 'error'
return '--loglevel ' . l:level
endfunction
" Returns '--stdin'.
-function! s:Flag_stdin() abort
+function! s:Flag_stdin(...) abort
return '--stdin '
endfunction