vim-haredoc

[vim] haredoc plugin
git clone https://git.torresjrjr.com/vim-haredoc.git
Log | Files | Refs | README | LICENSE

commit e7a6d6ef762945d979044e924cd12452acb50459
parent 177e5d0064b622a21ff10a28ba09baa03e8b6039
Author: Byron Torres <b@torresjrjr.com>
Date:   Tue, 14 Jun 2022 23:48:57 +0100

add plugin/haredoc.vim, make :Haredoc global

Diffstat:
Mftplugin/hare.vim | 48++++--------------------------------------------
Aplugin/haredoc.vim | 47+++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 51 insertions(+), 44 deletions(-)

diff --git a/ftplugin/hare.vim b/ftplugin/hare.vim @@ -1,48 +1,8 @@ " Haredoc plugin -- Hare documentation in vim " Maintainer: Byron Torres <b@torresjrjr.com> -" Last Updated: 2022-05-22 +" Last Updated: 2022-06-15 " License: Vim License -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 +setlocal keywordprg=haredoc + +nnoremap <buffer> K :call Haredoc('.')<CR> diff --git a/plugin/haredoc.vim b/plugin/haredoc.vim @@ -0,0 +1,47 @@ +" Haredoc plugin -- Hare documentation in vim +" Maintainer: Byron Torres <b@torresjrjr.com> +" Last Updated: 2022-06-15 +" License: Vim License + +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