{pkgs, ...}: { programs.neovim = { enable = true; extraLuaConfig = builtins.readFile ./config/nvim/init.lua; defaultEditor = true; viAlias = true; vimAlias = true; vimdiffAlias = true; withNodeJs = true; withRuby = true; withPython3 = true; extraPython3Packages = ps: with ps; [ # Extra python packages for magma-nvim jupyter-client ueberzug cairosvg pnglatex ]; extraPackages = with pkgs; [ # Used by installed plugins git curl gnutar gnumake gcc fzf ripgrep tree-sitter # Language servers nodePackages.pyright python3Packages.ruff-lsp nil lua-language-server fortls nodePackages.yaml-language-server nodePackages.vim-language-server nodePackages.bash-language-server # Null LSP formatters alejandra autoflake beautysh black nodePackages.fixjson fprettify isort python3Packages.mdformat # nixfmt # nixpkgs-fmt shellharden stylua ]; }; }