diff options
| author | Byron Torres <b@torresjrjr.com> | 2022-05-11 12:42:30 +0100 |
|---|---|---|
| committer | Byron Torres <b@torresjrjr.com> | 2022-05-11 12:42:30 +0100 |
| commit | 5784e502033e4334af64a2c5dfb0eb607de192e6 (patch) | |
| tree | 4bf5844cb0a1e1270e2108fb4e0237da6647dab4 /ftplugin/hare.vim | |
| parent | add LICENSE (diff) | |
| download | vim-haredoc-5784e502033e4334af64a2c5dfb0eb607de192e6.tar.gz | |
add ftplugin/hare.vim
Diffstat (limited to 'ftplugin/hare.vim')
| -rw-r--r-- | ftplugin/hare.vim | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/ftplugin/hare.vim b/ftplugin/hare.vim new file mode 100644 index 0000000..2a03bb6 --- /dev/null +++ b/ftplugin/hare.vim @@ -0,0 +1,47 @@ +" Haredoc plugin -- Hare documentation in vim +" Maintainer: Byron Torres <b@torresjrjr.com> +" Last Updated: 2022-05-22 + +set keywordprg=haredoc +nnoremap K :call Haredoc('.')<CR> +command -nargs=? Haredoc :call Haredoc(<q-args>) +function Haredoc(symbol) + let symbol = a:symbol + let popup = 0 + if symbol == '.' + let popup = 1 + let oldiskeyword = &iskeyword + setlocal iskeyword+=: + let symbol = expand('<cword>') + let &iskeyword = oldiskeyword + endif + if has('terminal') && has('popupwin') && popup == 1 + let minheight = 1 + system( + \ "haredoc -Ftty '"..symbol.."' 2>&1 | wc -l" + \ ) + let buf = term_start( + \ [ + \ 'sh', '-c', + \ "haredoc -Ftty '"..symbol.."' 2>&1 | less -RK", + \ ], + \ #{hidden: 1, term_finish: 'close'}, + \ ) + let winid = popup_atcursor( + \ buf, + \ #{ + \ col: 'cursor-'..virtcol('.'), + \ minwidth: 84, + \ minheight: minheight, + \ fixed: v:false, + \ wrap: v:false, + \ border: [1, 1, 1, 1], + \ }, + \ ) + elseif has('terminal') + execute 'terminal ++noclose haredoc '..symbol + set nonumber + nnoremap <buffer> q :close<CR> + else + execute '!haredoc '..symbol + endif +endfunction |
