For formatting f# there really is only one tool, fantomas. The CLI for fantomas has no input and will only do files. Ionide has built in support for fantomas, we need some extra config to make this work because right now we are only using Neoformat for formatting. This updates the formatting function to format with the lsp only for f# files. Anything else it will fall back to usign Neoformat. I am hoping that there will not be many cases of this and we can continue to use Neoformat.
25 lines
610 B
VimL
25 lines
610 B
VimL
"
|
|
" Functions to toggle format on save with Neoformat. This is off by default so
|
|
" I don't accidentally start formatting when rebasing (bad memories).
|
|
|
|
function s:format_on_save()
|
|
if &filetype == 'fsharp'
|
|
return execute('lua vim.lsp.buf.format()')
|
|
endif
|
|
|
|
undojoin | Neoformat
|
|
endfunction
|
|
|
|
function s:fmt_on_save_enable()
|
|
augroup aa_fmt
|
|
autocmd!
|
|
autocmd BufWritePre * call s:format_on_save()
|
|
augroup END
|
|
endfunction
|
|
|
|
function s:fmt_on_save_disable()
|
|
autocmd! aa_fmt
|
|
endfunction
|
|
|
|
command! FMTOnSaveEnable call s:fmt_on_save_enable()
|
|
command! FMTOnSaveDisable call s:fmt_on_save_disable()
|