diff options
Diffstat (limited to 'neovim.nix')
| -rw-r--r-- | neovim.nix | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/neovim.nix b/neovim.nix new file mode 100644 index 0000000..70727cd --- /dev/null +++ b/neovim.nix @@ -0,0 +1,103 @@ +self: { + lib, + pkgs, + ... +}: let + config = pkgs.vimUtils.buildVimPlugin { + pname = "neovim-config"; + version = builtins.substring 0 8 self.lastModifiedDate or "dirty"; + + src = null; + + dontUnpack = true; + + buildPhase = '' + mkdir -p lua + cp -r ${./config} lua/getchoo + ''; + }; + + plugins = with pkgs.vimPlugins; [ + bufferline-nvim + # dependent on > + nvim-web-devicons + catppuccin-nvim + + nvim-cmp + luasnip + cmp-async-path + cmp-buffer + cmp_luasnip + cmp-nvim-lsp + cmp-rg + + dressing-nvim + + efmls-configs-nvim + + fidget-nvim + flash-nvim + gitsigns-nvim + + indent-blankline-nvim + + lsp-format-nvim + nvim-lspconfig + + lualine-nvim + + mini-nvim + neo-tree-nvim + + telescope-nvim + # dependent on > + plenary-nvim + + ( + nvim-treesitter.withPlugins (_: + nvim-treesitter.allGrammars ++ [self.packages.${pkgs.system}.tree-sitter-just]) + ) + nvim-ts-context-commentstring + nvim-ts-autotag + vim-just + + trouble-nvim + which-key-nvim + ]; + + extraPackages = with pkgs; [ + # cmp + ripgrep + + # efmls-configs + efm-langserver + nodePackages.alex + actionlint + beautysh + codespell + shellcheck + statix + + # lspconfig + nodePackages.bash-language-server + nil + alejandra + ]; + + neovimConfig = pkgs.neovimUtils.makeNeovimConfig { + withPython3 = true; + withRuby = false; + plugins = plugins ++ [config]; + customRC = '' + lua require("getchoo") + ''; + }; +in + pkgs.wrapNeovimUnstable pkgs.neovim-unwrapped (lib.recursiveUpdate + neovimConfig + { + wrapperArgs = + lib.escapeShellArgs neovimConfig.wrapperArgs + + " " + + ''--suffix PATH : "${lib.makeBinPath extraPackages}"''; + }) |
