aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/prettier.vim2
-rw-r--r--autoload/prettier/job/async/vim.vim19
-rw-r--r--autoload/prettier/resolver/config.vim1
-rw-r--r--autoload/prettier/utils/buffer.vim11
-rw-r--r--doc/prettier.txt2
-rw-r--r--package.json2
-rw-r--r--plugin/prettier.vim4
7 files changed, 25 insertions, 16 deletions
diff --git a/autoload/prettier.vim b/autoload/prettier.vim
index 0e8ade3..e2ba919 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 <mitermayer.reis at gmail.com>
-" Version: 0.2.6
+" Version: 0.2.7
" Usage: Use :help vim-prettier-usage, or visit https://github.com/prettier/vim-prettier
"
"==========================================================================================================
diff --git a/autoload/prettier/job/async/vim.vim b/autoload/prettier/job/async/vim.vim
index ab0fbef..29774b9 100644
--- a/autoload/prettier/job/async/vim.vim
+++ b/autoload/prettier/job/async/vim.vim
@@ -8,13 +8,15 @@ function! prettier#job#async#vim#run(cmd, startSelection, endSelection) abort
let l:bufferName = bufname('%')
- call job_start([&shell, &shellcmdflag, a:cmd], {
- \ 'in_io': 'buffer',
- \ 'in_top': a:startSelection,
- \ 'in_bot': a:endSelection,
- \ 'in_name': l:bufferName,
+ let l:job = job_start([&shell, &shellcmdflag, a:cmd], {
+ \ 'out_io': 'buffer',
\ 'err_cb': {channel, msg -> s:onError(msg)},
\ 'close_cb': {channel -> s:onClose(channel, a:startSelection, a:endSelection, l:bufferName)}})
+
+ let l:stdin = job_getchannel(l:job)
+
+ call ch_sendraw(l:stdin, join(getbufline(bufnr(l:bufferName), a:startSelection, a:endSelection), "\n"))
+ call ch_close_in(l:stdin)
endfunction
function! s:onError(msg) abort
@@ -27,9 +29,9 @@ function! s:onClose(channel, startSelection, endSelection, bufferName) abort
let l:currentBufferName = bufname('%')
let l:isInsideAnotherBuffer = a:bufferName != l:currentBufferName ? 1 : 0
- while ch_status(a:channel) ==# 'buffered'
- call add(l:out, ch_read(a:channel))
- endwhile
+ let l:buff = ch_getbufnr(a:channel, 'out')
+ let l:out = getbufline(l:buff, 2, '$')
+ execute 'bd!' . l:buff
" we have no prettier output so lets exit
if len(l:out) == 0 | return | endif
@@ -37,6 +39,7 @@ function! s:onClose(channel, startSelection, endSelection, bufferName) abort
" nothing to update
if (prettier#utils#buffer#willUpdatedLinesChangeBuffer(l:out, a:startSelection, a:endSelection) == 0)
let s:prettier_job_running = 0
+ redraw!
return
endif
diff --git a/autoload/prettier/resolver/config.vim b/autoload/prettier/resolver/config.vim
index eae6725..3a1caf9 100644
--- a/autoload/prettier/resolver/config.vim
+++ b/autoload/prettier/resolver/config.vim
@@ -27,7 +27,6 @@ function! prettier#resolver#config#resolve(config, hasSelection, start, end) abo
\ get(a:config, 'proseWrap', g:prettier#config#prose_wrap) .
\ ' --stdin-filepath=' .
\ simplify(expand('%:p')) .
- \ ' --no-editorconfig '.
\ ' --loglevel error '.
\ ' --stdin '
" TODO
diff --git a/autoload/prettier/utils/buffer.vim b/autoload/prettier/utils/buffer.vim
index 258c615..c22fec7 100644
--- a/autoload/prettier/utils/buffer.vim
+++ b/autoload/prettier/utils/buffer.vim
@@ -9,10 +9,17 @@ function! prettier#utils#buffer#replace(lines, startSelection, endSelection) abo
endif
" delete all lines on the current buffer
- silent! execute len(l:newBuffer) . ',' . line('$') . 'delete _'
+ silent! execute '%delete _'
" replace all lines from the current buffer with output from prettier
- call setline(1, l:newBuffer)
+ let l:idx = 0
+ for l:line in l:newBuffer
+ silent! call append(l:idx, l:line)
+ let l:idx += 1
+ endfor
+
+ " delete trailing newline introduced by the above append procedure
+ silent! execute '$delete _'
" Restore view
call winrestview(l:winview)
diff --git a/doc/prettier.txt b/doc/prettier.txt
index 208cf22..db4223d 100644
--- a/doc/prettier.txt
+++ b/doc/prettier.txt
@@ -8,7 +8,7 @@ Author: Mitermayer Reis <mitermayer.reis@gmail.com>
WebSite: https://prettier.io/
Repository: https://github.com/prettier/vim-prettier
License: MIT style license
-Version: 0.2.6
+Version: 0.2.7
==============================================================================
CONTENTS *vim-prettier-contents*
diff --git a/package.json b/package.json
index 78811d6..901597e 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "vim-prettier",
"author": "Mitermayer Reis <mitermayer.reis@gmail.com>",
- "version": "0.2.6",
+ "version": "0.2.7",
"description": "Vim plugin for prettier",
"license": "MIT",
"repository": {
diff --git a/plugin/prettier.vim b/plugin/prettier.vim
index 4a3db64..4bb0773 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.6
+" Version: 0.2.7
" 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, <line1>, <line2>, g:prettier#partial_format)
" prints vim-prettier version
-command! -nargs=? -range=% PrettierVersion echom '0.2.6'
+command! -nargs=? -range=% PrettierVersion echom '0.2.7'
" call prettier cli
command! -nargs=? -range=% PrettierCli call prettier#PrettierCli(<q-args>)