Open alecandido opened 1 year ago
Hmm I think it's tricky because a lot of the underlying formatters don't support that sort of thing
But :Neoformat
is already able to format a visual selection. What is available to the command that would not be available while invoking through formatexpr
.
For the time being, I just mapped gQ
on :Neoformat
(with the effect of shadowing Ex mode on Neovim), but now I have two formatters, and in most situations I'd only need a single one.
@AleCandido: you can give the following a try (I have been using it for months without much problem):
function! NeoformatExpr() abort " {{{
" if v:char != ''
" return
" endif
let line1 = v:lnum
let line2 = v:lnum + v:count - 1
execute ':' . line1 . ',' . line2 . 'Neoformat'
endfunction "}}}
PS. to enable it, just run setl formatexpr=NeoformatExpr()
inside the filetype specific autogroup.
Thanks, that is exactly what I had in mind (the concept, I was completely missing the implementation)
I would like to do more or less the opposite of https://github.com/sbdchd/neoformat/issues/36, i.e. use Neoformat as
formatexpr
, such that when I select some text and pressgq
it gets formatted as if I issued:Neoformat
, but without a custom mapping.I'd need a function to invoke, possibly passing parameters available to
formatexpr
:I believe it should be possible just setting
formatexpr
in my configurations, but I'm not familiar with Neoformat internals, that's why I'm asking for help.