summaryrefslogtreecommitdiff
path: root/neovim.nix
diff options
context:
space:
mode:
Diffstat (limited to 'neovim.nix')
-rw-r--r--neovim.nix103
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}"'';
+ })