From de980f64640a2066851211a196be360d94705e7a Mon Sep 17 00:00:00 2001 From: cswimr Date: Wed, 5 Feb 2025 15:19:48 -0600 Subject: [PATCH] add more lsp servers --- nixos/nvim/plugins/lsp.nix | 56 +++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/nixos/nvim/plugins/lsp.nix b/nixos/nvim/plugins/lsp.nix index 80c7900..a8df9ef 100644 --- a/nixos/nvim/plugins/lsp.nix +++ b/nixos/nvim/plugins/lsp.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ pkgs, lib, ... }: { programs.nixvim = { extraPackages = with pkgs; [ @@ -7,8 +7,21 @@ nil nixfmt-rfc-style (callPackage ../../../packages/luau-lsp.nix { inherit pkgs; }) + dockerfile-language-server-nodejs + docker-compose-language-service + csharp-ls + deno + bash-language-server + powershell + powershell-editor-services + vscode-langservers-extracted + tailwindcss-language-server + typos-lsp ]; plugins = { + luasnip = { + enable = true; + }; lsp-status = { enable = true; }; @@ -30,19 +43,42 @@ end, desc = 'LSP: Disable hover capability from Ruff', }) + local capabilities = vim.lsp.protocol.make_client_capabilities() + capabilities.textDocument.completion.completionItem.snippetSupport = true require('lspconfig').basedpyright.setup { settings = { pyright = { disableOrganizeImports = true } } } require('lspconfig').ruff.setup { } + require('lspconfig').csharp_ls.setup { } require('lspconfig').nil_ls.setup { - cmd = { "${pkgs.nil}/bin/nil" }, + cmd = { "${lib.getExe pkgs.nil}" }, settings = { ['nil'] = { formatting = { - command = { "${pkgs.nixfmt-rfc-style}/bin/nixfmt" }, + command = { "${lib.getExe pkgs.nixfmt-rfc-style}" }, }, }, }, } - --require('luau-lsp').setup { } + require('lspconfig').luau_lsp.setup { } + require('lspconfig').denols.setup { } + require('lspconfig').eslint.setup { } + require('lspconfig').html.setup { + capabilities = capabilities, + } + require('lspconfig').cssls.setup { + capabilities = capabilities, + } + require('lspconfig').jsonls.setup { + capabilities = capabilities, + } + require('lspconfig').tailwindcss.setup { } + require('lspconfig').dockerls.setup { } + require('lspconfig').docker_compose_language_service.setup { } + require('lspconfig').bashls.setup { } + require('lspconfig').powershell_es.setup { + bundle_path = "${lib.getExe pkgs.powershell-editor-services}", + shell = "${lib.getExe pkgs.powershell}", + } + require('lspconfig').typos_lsp.setup { } ''; }; trouble = { @@ -52,18 +88,6 @@ }; }; }; - extraPlugins = [ - (pkgs.vimUtils.buildVimPlugin { - # https://github.com/lopi-py/luau-lsp.nvim - name = "luau-lsp.nvim"; - src = pkgs.fetchFromGitHub { - owner = "lopi-py"; - repo = "luau-lsp.nvim"; - rev = "v1.6.0"; - sha256 = "sha256-8+ax8n1fA4jgJugvWtRXkad4YM7TmAAsAopzalmGu/4="; - }; - }) - ]; keymaps = [ { mode = "n";