aboutsummaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authormitermayer <mitermayer.reis@gmail.com>2019-09-13 21:38:53 +0000
committermitermayer <mitermayer.reis@gmail.com>2019-09-13 21:38:53 +0000
commit3dc6684302ff2749570d938e1d49862db0e2648c (patch)
tree2bb00ea13832cd22f23566250ece8c93954a852e /autoload
parent7ac46762931442491b13401411a1b4eb65272099 (diff)
downloadvim-prettier-3dc6684302ff2749570d938e1d49862db0e2648c.tar.xz
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
Diffstat (limited to 'autoload')
-rw-r--r--autoload/prettier.vim33
1 files changed, 6 insertions, 27 deletions
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