diff --git a/flake.nix b/flake.nix index 1b4e87b..ecffc44 100644 --- a/flake.nix +++ b/flake.nix @@ -28,23 +28,24 @@ [ alejandra ccls + chafa gopls + haskell-language-server luaformatter + lua-language-server nixd nixfmt-rfc-style pyright rust-analyzer - lua-language-server svls texlab - tree-sitter tinymist + tree-sitter + ueberzugpp verible + viu yaml-language-server zls - viu - chafa - ueberzugpp ] ++ [ neovim ]; }; diff --git a/nvim-lsp.nix b/nvim-lsp.nix index 46713cd..e5b08d3 100644 --- a/nvim-lsp.nix +++ b/nvim-lsp.nix @@ -1,4 +1,5 @@ -{pkgs}: let +{ pkgs }: +let neovim = pkgs.neovim.override { configure = { customRC = '' @@ -12,6 +13,7 @@ parsers.c parsers.cpp parsers.go + parsers.haskell parsers.json parsers.latex parsers.lua @@ -43,7 +45,7 @@ vim-slime vim-snippets zig-vim - nvim-web-devicons + nvim-web-devicons ]; }; }; @@ -51,7 +53,7 @@ # lua luaRc = builtins.readFile ./vimrc.lua; in - pkgs.runCommand "nvim-lsp" {} '' - mkdir -p $out/bin - ln -s ${neovim}/bin/nvim $out/bin/vim - '' +pkgs.runCommand "nvim-lsp" { } '' + mkdir -p $out/bin + ln -s ${neovim}/bin/nvim $out/bin/vim +'' diff --git a/vimrc.lua b/vimrc.lua index ecd7bf7..505d3f7 100644 --- a/vimrc.lua +++ b/vimrc.lua @@ -215,7 +215,7 @@ vim.lsp.config('nixd', { }, }, }) -vim.lsp.enable('nixd'); +vim.lsp.enable('nixd') vim.lsp.config('lua_ls', { capabilities = capabilities, @@ -241,13 +241,19 @@ vim.lsp.config('lua_ls', { }, }, }) -vim.lsp.enable('lua_ls'); +vim.lsp.enable('lua_ls') vim.lsp.config('verible', { capabilities = capabilities, root_dir = function() return vim.fn.getcwd() end }) -vim.lsp.enable('verible'); +vim.lsp.enable('verible') + +vim.lsp.config('hls', { + capabilities = capabilities, + filetypes = { 'haskell', 'lhaskell', 'cabal' }, +}) +vim.lsp.enable('hls') if vim.fn.exists('+undofile') ~= 0 then local undo_dir = vim.env.HOME .. '/.config/nvim/undo'