aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/prettier.vim1
-rw-r--r--autoload/prettier/job/async/neovim.vim18
-rw-r--r--autoload/prettier/job/async/vim.vim23
3 files changed, 27 insertions, 15 deletions
diff --git a/autoload/prettier.vim b/autoload/prettier.vim
index 9be30f5..c5e21e5 100644
--- a/autoload/prettier.vim
+++ b/autoload/prettier.vim
@@ -34,6 +34,7 @@ function! prettier#PrettierCli(user_input) abort
endif
endfunction
+" Allows @format pragma support
function! prettier#Autoformat(...) abort
let l:curPos = getpos('.')
let l:maxLineLookup = 50
diff --git a/autoload/prettier/job/async/neovim.vim b/autoload/prettier/job/async/neovim.vim
index 9844579..b369406 100644
--- a/autoload/prettier/job/async/neovim.vim
+++ b/autoload/prettier/job/async/neovim.vim
@@ -1,8 +1,14 @@
+let s:prettier_job_running = 0
+
function! prettier#job#async#neovim#run(cmd, startSelection, endSelection) abort
- let l:async_cmd = a:cmd
+ if s:prettier_job_running == 1
+ return
+ endif
+
+ let l:cmd = a:cmd
if has('win32') || has('win64')
- let l:async_cmd = 'cmd.exe /c ' . a:cmd
+ let l:cmd = 'cmd.exe /c ' . a:cmd
endif
let l:lines = getline(a:startSelection, a:endSelection)
@@ -15,16 +21,18 @@ function! prettier#job#async#neovim#run(cmd, startSelection, endSelection) abort
let l:out = []
let l:err = []
- let l:job = jobstart([&shell, &shellcmdflag, l:async_cmd], {
+ let l:job = jobstart([&shell, &shellcmdflag, l:cmd], {
\ 'on_stdout': {job_id, data, event -> extend(l:out, data)},
\ 'on_stderr': {job_id, data, event -> extend(l:err, data)},
- \ 'on_exit': {job_id, status, event -> s:Prettier_Job_Nvim_Exit(status, l:dict, l:out, l:err)},
+ \ 'on_exit': {job_id, status, event -> s:onExit(status, l:dict, l:out, l:err)},
\ })
call jobsend(l:job, l:lines)
call jobclose(l:job, 'stdin')
endfunction
-function! s:Prettier_Job_Nvim_Exit(status, info, out, err) abort
+function! s:onExit(status, info, out, err) abort
+ let s:prettier_job_running = 0
+
if a:status != 0
echoerr join(a:err, "\n")
return
diff --git a/autoload/prettier/job/async/vim.vim b/autoload/prettier/job/async/vim.vim
index 4db6522..ef9e37d 100644
--- a/autoload/prettier/job/async/vim.vim
+++ b/autoload/prettier/job/async/vim.vim
@@ -1,6 +1,12 @@
let s:prettier_job_running = 0
function! prettier#job#async#vim#run(cmd, startSelection, endSelection) abort
+ if s:prettier_job_running == 1
+ return
+ endif
+
+ let s:prettier_job_running = 1
+
let l:cmd = a:cmd
if has('win32') || has('win64')
@@ -9,16 +15,13 @@ function! prettier#job#async#vim#run(cmd, startSelection, endSelection) abort
let l:bufferName = bufname('%')
- if s:prettier_job_running != 1
- let s:prettier_job_running = 1
- call job_start([&shell, &shellcmdflag, l:cmd], {
- \ 'in_io': 'buffer',
- \ 'in_top': a:startSelection,
- \ 'in_bot': a:endSelection,
- \ 'in_name': l:bufferName,
- \ 'err_cb': {channel, msg -> s:onError(msg)},
- \ 'close_cb': {channel -> s:onClose(channel, a:startSelection, a:endSelection, l:bufferName)}})
- endif
+ call job_start([&shell, &shellcmdflag, l:cmd], {
+ \ 'in_io': 'buffer',
+ \ 'in_top': a:startSelection,
+ \ 'in_bot': a:endSelection,
+ \ 'in_name': l:bufferName,
+ \ 'err_cb': {channel, msg -> s:onError(msg)},
+ \ 'close_cb': {channel -> s:onClose(channel, a:startSelection, a:endSelection, l:bufferName)}})
endfunction
function! s:onError(msg) abort