{ description = "Personal NeoVim configuration"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; neovim-nightly-overlay = { url = "github:nix-community/neovim-nightly-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = {neovim-nightly-overlay, ...}: let extraPackages = {pkgs, ...}: with pkgs; [ # Misc utils curl fzf git gnutar gnumake gnused gcc ripgrep tree-sitter # Language servers nil lua-language-server fortls nodePackages.pyright nodePackages.yaml-language-server nodePackages.vim-language-server nodePackages.bash-language-server # Null LSP formatters alejandra beautysh black nodePackages.fixjson fprettify isort python3Packages.mdformat shellharden stylua ]; in { overlay = neovim-nightly-overlay.overlay; homeManagerModules.default = {pkgs, ...}: { programs.neovim = { enable = true; package = pkgs.neovim-nightly; defaultEditor = true; viAlias = true; vimAlias = true; vimdiffAlias = true; withNodeJs = true; withRuby = true; withPython3 = true; extraPackages = extraPackages pkgs; }; }; }; }