Dotfiles/site-modules/core/files/vim/plugin/fmt.vim
Ade Attwood 22eda7e6ed feat(vim): use the lsp to format f# files
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.
2024-09-24 19:53:46 +01:00

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()