{ self, inputs, ... }: { flake-file.inputs = { nvf = { url = "github:notashelf/nvf"; inputs.nixpkgs.follows = "nixpkgs"; }; }; perSystem = { system, pkgs, config, ... }: { packages.my-neovim = ((inputs.nvf.lib.neovimConfiguration { inherit pkgs; modules = [ { # https://nvf.notashelf.dev/search.html config.vim = { options = { number = true; relativenumber = true; expandtab = true; shiftwidth = 4; tabstop = 4; softtabstop = 4; wrap = true; linebreak = true; }; syntaxHighlighting = true; # Enable custom theming options theme.enable = true; theme.name = "catppuccin"; theme.style = "mocha"; git.enable = true; # git.neogit.enable = true; # https://github.com/akinsho/toggleterm.nvim terminal.toggleterm.enable = true; terminal.toggleterm.lazygit.enable = true; terminal.toggleterm.lazygit.direction = "float"; terminal.toggleterm.lazygit.mappings.open = ""; utility.nix-develop.enable = true; utility.oil-nvim.enable = true; utility.oil-nvim.gitStatus.enable = true; filetree.neo-tree = { enable = true; }; # lazy = { # enable = true; # }; # globals = { # SimpylFold_docstring_preview = 1; # SimpylFold_fold_blank = 0; # }; # extraPlugins = with pkgs.vimPlugins; { # SimpylFold.package = SimpylFold; # }; telescope = { enable = true; extensions = [ { name = "fzf"; packages = [pkgs.vimPlugins.telescope-fzf-native-nvim]; setup = {fzf = {fuzzy = true;};}; } ]; }; # Enable Treesitter treesitter = { enable = true; grammars = with pkgs.vimPlugins.nvim-treesitter-parsers; [ python ]; }; lsp.enable = true; languages = { enableTreesitter = true; enableFormat = true; markdown = { enable = true; extensions = { # render-markdown-nvim.enable = true; markview-nvim.enable = true; }; }; bash.enable = true; css.enable = true; yaml.enable = true; toml.enable = true; nix = { enable = true; }; python = { enable = true; dap.enable = true; format.type = [ "ruff" ]; }; }; keymaps = [ { desc = "Edit key mappings"; key = "ekm"; mode = [ "n" ]; silent = false; action = ":edit +/keymaps /home/john/.config/home-manager/jsl-dendritic/modules/programs/neovim.nix"; } { desc = "Home Manager Switch"; key = "nhms"; mode = [ "n" ]; silent = false; action = ":TermExec cmd='clear && nhms && exit' name='Nix Home Manager Switch' direction=float"; } { desc = "Key Maps [Telescope]"; key = "fkm"; mode = "n"; silent = false; action = ":Telescope keymaps"; } { desc = "Toggle Filesystem Tree [NeoTree]"; key = ""; mode = [ "n" "v" "t" ]; silent = false; action = ":Neotree toggle filesystem left action=show"; } { key = ""; mode = ["n" "v" "t"]; silent = false; action = ":ToggleTerm"; } ]; }; } ]; }).neovim).overrideAttrs (old: { pname = "my-neovim"; version = "custom"; }); }; }