" Haredoc plugin -- Hare documentation in vim " Maintainer: Byron Torres " Last Updated: 2022-06-15 " License: Vim License command -nargs=? Haredoc :call Haredoc() function Haredoc(symbol) let symbol = a:symbol let popup = 0 if symbol == '.' let popup = 1 let oldiskeyword = &iskeyword setlocal iskeyword+=: let symbol = expand('') 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 q :close else execute '!haredoc '..symbol endif endfunction