From 522d56557b00246286d803425751a4334f3a94a5 Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Mon, 15 Jul 2024 20:05:47 +0100 Subject: Update lspconfig, add indent-blankline indent-blankline is probably old because I've actually been using it for ages, but I have a strict if-it-ain't-broke policy, so I'm not going to update it. lspconfig *was* broke though with nvim 0.10, so now it's fixed. --- .../lua/lspconfig/server_configurations/hls.lua | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 start/lspconfig-0.1.8/lua/lspconfig/server_configurations/hls.lua (limited to 'start/lspconfig-0.1.8/lua/lspconfig/server_configurations/hls.lua') diff --git a/start/lspconfig-0.1.8/lua/lspconfig/server_configurations/hls.lua b/start/lspconfig-0.1.8/lua/lspconfig/server_configurations/hls.lua new file mode 100644 index 0000000..4390440 --- /dev/null +++ b/start/lspconfig-0.1.8/lua/lspconfig/server_configurations/hls.lua @@ -0,0 +1,52 @@ +local util = require 'lspconfig.util' + +return { + default_config = { + cmd = { 'haskell-language-server-wrapper', '--lsp' }, + filetypes = { 'haskell', 'lhaskell' }, + root_dir = util.root_pattern('hie.yaml', 'stack.yaml', 'cabal.project', '*.cabal', 'package.yaml'), + single_file_support = true, + settings = { + haskell = { + formattingProvider = 'ormolu', + cabalFormattingProvider = 'cabalfmt', + }, + }, + lspinfo = function(cfg) + local extra = {} + local function on_stdout(_, data, _) + local version = data[1] + table.insert(extra, 'version: ' .. version) + end + + local opts = { + cwd = cfg.cwd, + stdout_buffered = true, + on_stdout = on_stdout, + } + local chanid = vim.fn.jobstart({ cfg.cmd[1], '--version' }, opts) + vim.fn.jobwait { chanid } + return extra + end, + }, + + docs = { + description = [[ +https://github.com/haskell/haskell-language-server + +Haskell Language Server + +If you are using HLS 1.9.0.0, enable the language server to launch on Cabal files as well: + +```lua +require('lspconfig')['hls'].setup{ + filetypes = { 'haskell', 'lhaskell', 'cabal' }, +} +``` + ]], + + default_config = { + root_dir = [[root_pattern("hie.yaml", "stack.yaml", "cabal.project", "*.cabal", "package.yaml")]], + }, + }, +} -- cgit v1.2.3