This repository has been archived on 2024-03-28. You can view files and clone it, but cannot push or open issues or pull requests.
dotfiles/apps/neovim/scripts/pipeline.vim
2020-02-13 11:14:25 -06:00

20 lines
819 B
VimL

edit $PIPELINE_IN
split $PIPELINE_TRANSFORM
split $PIPELINE_OUT
let s:refresh_output = {j, d, e -> execute('checktime')}
let s:refresh_output_job = {'spec': ['inotifywait', '-m', '-e', 'close_write,delete', $PIPELINE_OUT], 'opts': {'detach': 1, 'on_stdout': s:refresh_output}}
let s:refresh_output_job_id = jobstart(s:refresh_output_job['spec'], s:refresh_output_job['opts'])
function s:RunPipeline()
execute "!".g:pipeline_transform
endfunction
let s:refresh_output_job_id = jobstart(s:refresh_output_job['spec'], s:refresh_output_job['opts'])
set updatetime=250
" only autosave the input buffer
autocmd CursorHold,CursorHoldI <buffer> silent write
autocmd FileWritePost silent call s:RunPipeline()
autocmd VimLeavePre call jobstop(s:refresh_output_job_id)
autocmd VimLeavePre call jobstop(s:run_pipeline_job_id)