From 22eda7e6ed4a36f52450e141f3580bf6b3579233 Mon Sep 17 00:00:00 2001 From: Ade Attwood Date: Tue, 24 Sep 2024 19:49:32 +0100 Subject: [PATCH] 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. --- site-modules/core/files/vim/plugin/fmt.vim | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/site-modules/core/files/vim/plugin/fmt.vim b/site-modules/core/files/vim/plugin/fmt.vim index fd5c87b..583035f 100644 --- a/site-modules/core/files/vim/plugin/fmt.vim +++ b/site-modules/core/files/vim/plugin/fmt.vim @@ -2,10 +2,18 @@ " 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 * undojoin | Neoformat + autocmd BufWritePre * call s:format_on_save() augroup END endfunction