diff --git a/configurations/android/nix-on-droid.nix b/configurations/android/nix-on-droid.nix index 3f3eceb6..3cc85ab6 100644 --- a/configurations/android/nix-on-droid.nix +++ b/configurations/android/nix-on-droid.nix @@ -52,6 +52,7 @@ user = "nix-on-droid"; ideConfig = { + enableGolang = false; enableJava = false; enableNix = false; enablePython = false; diff --git a/homeManagerModules/neovim/default.nix b/homeManagerModules/neovim/default.nix index b2c0ef2c..b17ad530 100644 --- a/homeManagerModules/neovim/default.nix +++ b/homeManagerModules/neovim/default.nix @@ -25,6 +25,10 @@ in { type = types.bool; default = true; }; + enableGolang = mkOption { + type = types.bool; + default = true; + }; enableJava = mkOption { type = types.bool; default = true; diff --git a/homeManagerModules/neovim/langs/default.nix b/homeManagerModules/neovim/langs/default.nix index d9393a87..6482a7c7 100644 --- a/homeManagerModules/neovim/langs/default.nix +++ b/homeManagerModules/neovim/langs/default.nix @@ -14,6 +14,7 @@ in { imports = [ ./bash ./c-lang + ./golang ./hyprlang ./java ./json diff --git a/homeManagerModules/neovim/langs/golang/default.nix b/homeManagerModules/neovim/langs/golang/default.nix new file mode 100644 index 00000000..0005ea1c --- /dev/null +++ b/homeManagerModules/neovim/langs/golang/default.nix @@ -0,0 +1,39 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib) mkIf; + + cfg = config.programs.neovim; +in { + config = mkIf (cfg.enable && cfg.ideConfig.enableGolang) { + programs = { + neovim = { + extraPackages = with pkgs; [go gopls]; + + plugins = [ + { + plugin = pkgs.vimPlugins.clangd_extensions-nvim; + type = "lua"; + config = + # lua + '' + local lsp = require('lspconfig'); + local default_capabilities = require('cmp_nvim_lsp').default_capabilities(); + + lsp.gopls.setup({ + cmd = { '${pkgs.gopls}/bin/gopls' }, + capabilities = default_capabilities, + }); + ''; + } + ]; + }; + }; + }; + + # For accurate stack trace + _file = ./default.nix; +}