diff --git a/hmModules/apps/neovim/app.nix b/hmModules/apps/neovim/app.nix index 3557f90..e4ef676 100644 --- a/hmModules/apps/neovim/app.nix +++ b/hmModules/apps/neovim/app.nix @@ -5,6 +5,7 @@ enable = lib.mkEnableOption "Enables neovim"; languages = { c.enable = lib.mkEnableOption "Enables c support"; + go.enable = lib.mkEnableOption "Enables go support"; nix.enable = lib.mkEnableOption "Enables nix support"; rust.enable = lib.mkEnableOption "Enables rust support"; }; @@ -48,6 +49,7 @@ extraPackages = with pkgs; [ (lib.mkIf config.neovim.languages.c.enable libclang) + (lib.mkIf config.neovim.languages.go.enable gopls) (lib.mkIf config.neovim.languages.nix.enable nil) (lib.mkIf config.neovim.languages.rust.enable rust-analyzer) ]; @@ -96,6 +98,10 @@ rust-pkg = lopts cfgl.rust.enable (with pkgs.vimPlugins; [ rustaceanvim ]); + + go-pkg = lopts cfgl.go.enable (with pkgs.vimPlugins; [ + go-nvim + ]); wiki = lopts cfgp.wiki.enable (with pkgs.vimPlugins; [ { @@ -114,7 +120,7 @@ } ]); in comments ++ fugitive ++ luasnip-pkg ++ lualine ++ - nix-pkg ++ rust-pkg ++ wiki; + nix-pkg ++ rust-pkg ++ go-pkg ++ wiki; }; }; } diff --git a/hmModules/apps/neovim/plugin/lsp.nix b/hmModules/apps/neovim/plugin/lsp.nix index bd06204..f5a66c5 100644 --- a/hmModules/apps/neovim/plugin/lsp.nix +++ b/hmModules/apps/neovim/plugin/lsp.nix @@ -35,12 +35,12 @@ end local capabilities = vim.lsp.protocol.make_client_capabilities() - '' + lib.strings.optionalString cfgl.nix.enable '' - require('lspconfig').nil_ls.setup {} '' + lib.strings.optionalString cfgl.c.enable '' require('lspconfig').clangd.setup {} - '' + lib.strings.optionalString cfgl.rust.enable '' - require('lspconfig').rustaceanvim.setup {} + '' + lib.strings.optionalString cfgl.go.enable '' + require('lspconfig').gopls.setup {} + '' + lib.strings.optionalString cfgl.nix.enable '' + require('lspconfig').nil_ls.setup {} ''; in with pkgs.vimPlugins; [ { diff --git a/hmModules/apps/neovim/plugin/treesitter.nix b/hmModules/apps/neovim/plugin/treesitter.nix index 43b2d28..d1e9fe3 100644 --- a/hmModules/apps/neovim/plugin/treesitter.nix +++ b/hmModules/apps/neovim/plugin/treesitter.nix @@ -22,6 +22,7 @@ in { # dynamically. For not just have them always loaded regardless of config treeplugs = p: [ p.tree-sitter-c + p.tree-sitter-go p.tree-sitter-nix p.tree-sitter-rust ]; diff --git a/hosts/jibril/users/pan/user.nix b/hosts/jibril/users/pan/user.nix index ea6c1de..c534af4 100644 --- a/hosts/jibril/users/pan/user.nix +++ b/hosts/jibril/users/pan/user.nix @@ -72,6 +72,7 @@ neovim.enable = true; neovim.languages = { c.enable = true; + go.enable = true; nix.enable = true; rust.enable = true; };