aboutsummaryrefslogtreecommitdiffstats
path: root/lsp/fsharp_language_server.lua
blob: a2ced8031d9c50c7817da5dacded3bb165fe00a0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
local util = require 'lspconfig.util'

---@brief
---
-- F# Language Server
-- https://github.com/faldor20/fsharp-language-server
--
-- An implementation of the language server protocol using the F# Compiler Service.
--
-- Build the project from source and override the command path to location of DLL.
--
-- If filetype determination is not already performed by an available plugin ([PhilT/vim-fsharp](https://github.com/PhilT/vim-fsharp), [fsharp/vim-fsharp](https://github.com/fsharp/vim-fsharp), and [adelarsq/neofsharp.vim](https://github.com/adelarsq/neofsharp.vim).
-- ), then the following must be added to initialization configuration:
--
--
-- `autocmd BufNewFile,BufRead *.fs,*.fsx,*.fsi set filetype=fsharp`
return {
  cmd = { 'dotnet', 'FSharpLanguageServer.dll' },
  root_dir = function(bufnr, on_dir)
    local fname = vim.api.nvim_buf_get_name(bufnr)
    on_dir(util.root_pattern('*.sln', '*.fsproj', '.git')(fname))
  end,
  filetypes = { 'fsharp' },
  init_options = {
    AutomaticWorkspaceInit = true,
  },
  settings = {},
}