From 04814313aa815d712c594d3eb34977c18fe85ded Mon Sep 17 00:00:00 2001 From: Phil Thompson Date: Sat, 20 Feb 2021 15:06:10 +0000 Subject: LSP Config for F# using FsAutoComplete --- lua/lspconfig/fsautocomplete.lua | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 lua/lspconfig/fsautocomplete.lua (limited to 'lua') diff --git a/lua/lspconfig/fsautocomplete.lua b/lua/lspconfig/fsautocomplete.lua new file mode 100644 index 00000000..5ae42d30 --- /dev/null +++ b/lua/lspconfig/fsautocomplete.lua @@ -0,0 +1,39 @@ +local configs = require 'lspconfig/configs' +local util = require 'lspconfig/util' + +configs.fsautocomplete = { + default_config = { + root_dir = util.root_pattern('*.sln', '*.fsproj', '.git'); + filetypes = {'fsharp'}; + init_options = { + AutomaticWorkspaceInit = true; + }; + }; + docs = { + description = [[ +https://github.com/fsharp/FsAutoComplete + +Language Server for F# provded by FsAutoComplete (FSAC). + +Download a release of FsAutoComplete from [here](https://github.com/fsharp/FsAutoComplete/releases). +Instructions to compile from source are found on the main repository. + +FsAutoComplete requires the [dotnet-sdk](https://dotnet.microsoft.com/download) to be installed. + +You may also need to configure the filetype as Vim defaults to Forth for `*.fs` files: + +`autocmd BufNewFile,BufRead *.fs,*.fsx,*.fsi set filetype=fsharp` + +This is automatically done by plugins such as [vim-polyglot](https://github.com/sheerun/vim-polyglot), [PhilT/vim-fsharp](https://github.com/PhilT/vim-fsharp) or [fsharp/vim-fsharp](https://github.com/fsharp/vim-fsharp). + +**By default, this config doesn't have a `cmd` set.** This is because nvim-lspconfig does not make assumptions about your path. You must add the following to your init.vim or init.lua to set `cmd` to the absolute path ($HOME and ~ are not expanded) of your unzipped and compiled fsautocomplete.dll. + +```lua +require'lspconfig'.fsautocomplete.setup{ + cmd = {'dotnet', 'path/to/fsautocomplete.dll', '--background-service-enabled'} +} +``` + ]]; + }; +} +-- vim:et ts=2 sw=2 -- cgit v1.2.3-70-g09d2