diff options
| author | Mitermayer Reis <mitermayer.reis@gmail.com> | 2020-02-05 11:08:03 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-05 11:08:03 +1100 |
| commit | 49d91743b2df43f84edd199f877d494b4d8812f4 (patch) | |
| tree | cf856d77c9960a09eb3156937aa1b896b855bed6 /plugin | |
| parent | 9eb448e45ef88e90681335fda32bcae52a09d6dc (diff) | |
| parent | b064c6ab82a3c57ea64360d762d661ad7e8ee54c (diff) | |
| download | vim-prettier-49d91743b2df43f84edd199f877d494b4d8812f4.tar.xz | |
Merge pull request #175 from prettier/release/1.x
Release/1.x
Diffstat (limited to 'plugin')
| -rw-r--r-- | plugin/prettier.vim | 127 |
1 files changed, 94 insertions, 33 deletions
diff --git a/plugin/prettier.vim b/plugin/prettier.vim index 84b2485..4ffa9cb 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 <mitermayer.reis at gmail.com> -" Version: 0.2.7 +" Version: 1.0.0-alpha " Usage: Use :help vim-prettier-usage, or visit https://github.com/prettier/vim-prettier " "========================================================================================================== @@ -17,11 +17,21 @@ endif let g:loaded_prettier = 1 " => Plugin config -" autoformating enabled by default upon saving -let g:prettier#autoformat = get(g:, 'prettier#autoformat', 1) +" autoformating disabled by default upon saving +let g:prettier#autoformat = get(g:, 'prettier#autoformat', 0) -" experimental async flag will be disabled by default until is stable -let g:prettier#nvim_unstable_async = get(g:,'prettier#nvim_unstable_async', 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) @@ -32,57 +42,85 @@ 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) + +" 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') + " => 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: a number or 'auto' (use +" softtabstop) +" default: 'auto' +let g:prettier#config#tab_width = get(g:,'prettier#config#tab_width', 'auto') + +" 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') -" number of spaces per indentation level -let g:prettier#config#tab_width = get(g:,'prettier#config#tab_width', 2) +" 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', '') -" use tabs over spaces -let g:prettier#config#use_tabs = get(g:,'prettier#config#use_tabs', 'false') +" cli-override|file-override|prefer-file +" default: 'file-override' +let g:prettier#config#config_precedence = get(g:, 'prettier#config#config_precedence', 'file-override') + +" always|never|preserve +" 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') -" single quotes over double quotes -let g:prettier#config#single_quote = get(g:,'prettier#config#single_quote', '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 -let g:prettier#config#bracket_spacing = get(g:,'prettier#config#bracket_spacing', 'false') +" default: 'true' +let g:prettier#config#bracket_spacing = get(g:,'prettier#config#bracket_spacing', 'true') " 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') +" 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 -let g:prettier#config#trailing_comma = get(g:,'prettier#config#trailing_comma', 'all') +" default: 'none' +let g:prettier#config#trailing_comma = get(g:,'prettier#config#trailing_comma', 'none') -" flow|babylon|typescript|postcss|json|graphql -let g:prettier#config#parser = get(g:,'prettier#config#parser', 'flow') - -" cli-override|file-override|prefer-file -let g:prettier#config#config_precedence = get(g:, 'prettier#config#config_precedence', 'prefer-file') - -" always|never|preserve -let g:prettier#config#prose_wrap = get(g:, 'prettier#config#prose_wrap', 'preserve') - -" css|strict|ignore -let g:prettier#config#html_whitespace_sensitivity = get(g:, 'prettier#config#html_whitespace_sensitivity', 'css') - -" Don't leave the quicklist focused on error. -let g:prettier#quickfix_auto_focus = get(g:, 'prettier#quickfix_auto_focus', 1) +" 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, <line1>, <line2>) +command! -nargs=? -range=% Prettier call prettier#Prettier(g:prettier#exec_cmd_async, <line1>, <line2>, g:prettier#partial_format) " prettier async -command! -nargs=? -range=% PrettierAsync call prettier#Prettier(1, <line1>, <line2>) +command! -nargs=? -range=% PrettierAsync call prettier#Prettier(1, <line1>, <line2>, 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(<q-args>) @@ -93,13 +131,36 @@ 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, <line1>, <line2>, 0) + +" sends entire buffer to prettier cli but format just selection +command! -nargs=? -range=% PrettierPartial call prettier#Prettier(g:prettier#exec_cmd_async, <line1>, <line2>, 1) + " map command if !hasmapto('<Plug>(Prettier)') && maparg('<Leader>p', 'n') ==# '' nmap <unique> <Leader>p <Plug>(Prettier) endif nnoremap <silent> <Plug>(Prettier) :Prettier<CR> nnoremap <silent> <Plug>(PrettierAsync) :PrettierAsync<CR> +nnoremap <silent> <Plug>(PrettierFragment) :PrettierFragment<CR> +nnoremap <silent> <Plug>(PrettierPartial) :PrettierPartial<CR> nnoremap <silent> <Plug>(PrettierVersion) :PrettierVersion<CR> nnoremap <silent> <Plug>(PrettierCli) :PrettierCli<CR> nnoremap <silent> <Plug>(PrettierCliVersion) :PrettierCliVersion<CR> nnoremap <silent> <Plug>(PrettierCliPath) :PrettierCliPath<CR> + +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 +augroup end |
