From 6b8727b29de9c5a2395a327e60211035dd6e979a Mon Sep 17 00:00:00 2001 From: John Lancaster <32917998+jsl12@users.noreply.github.com> Date: Wed, 6 May 2026 22:05:02 -0500 Subject: [PATCH] started neovim-min --- modules/programs/neovim.nix | 284 +++++++++++++++++++----------------- modules/programs/zsh.nix | 3 +- 2 files changed, 153 insertions(+), 134 deletions(-) diff --git a/modules/programs/neovim.nix b/modules/programs/neovim.nix index 6f04cf2..353f97e 100644 --- a/modules/programs/neovim.nix +++ b/modules/programs/neovim.nix @@ -6,153 +6,171 @@ }; }; - 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; + perSystem = { system, pkgs, config, ... }: + let + commonNeovimModule = { + config.vim = { + options = { + number = true; + relativenumber = true; + expandtab = true; + shiftwidth = 4; + tabstop = 4; + softtabstop = 4; - wrap = true; - linebreak = true; - }; + wrap = true; + linebreak = true; + }; - syntaxHighlighting = true; + syntaxHighlighting = true; - # Enable custom theming options - theme.enable = true; - theme.name = "catppuccin"; - theme.style = "mocha"; + theme.enable = true; + theme.name = "catppuccin"; + theme.style = "mocha"; - git.enable = true; - # git.neogit.enable = true; + 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 = ""; + # 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 = ""; + lsp.enable = true; - utility.nix-develop.enable = true; + languages = { + enableTreesitter = true; + enableFormat = true; - utility.oil-nvim.enable = true; - utility.oil-nvim.gitStatus.enable = true; + nix.enable = true; + yaml.enable = true; + toml.enable = true; + }; + }; + }; + in { + packages.my-neovim = ((inputs.nvf.lib.neovimConfiguration { + inherit pkgs; + modules = [ + commonNeovimModule + { + # https://nvf.notashelf.dev/search.html + config.vim = { + utility.nix-develop.enable = true; - filetree.neo-tree = { - enable = true; - }; + utility.oil-nvim.enable = true; + utility.oil-nvim.gitStatus.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 = { + filetree.neo-tree = { enable = true; - extensions = { - # render-markdown-nvim.enable = true; - markview-nvim.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 ]; + }; + + languages = { + 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; + + python = { + enable = true; + dap.enable = true; + format.type = [ "ruff" ]; }; }; - 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 = "1.0.0"; + }); - 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"; - }); - }; + packages.neovim-min = ((inputs.nvf.lib.neovimConfiguration { + inherit pkgs; + modules = [ commonNeovimModule ]; + }).neovim).overrideAttrs (old: { + pname = "neovim-min"; + version = "1.0.0"; + }); + }; } diff --git a/modules/programs/zsh.nix b/modules/programs/zsh.nix index 807c3a5..9c2e0e1 100644 --- a/modules/programs/zsh.nix +++ b/modules/programs/zsh.nix @@ -137,7 +137,8 @@ in extraPackages = with pkgs; [ lazydocker self'.packages.shell-tools + self'.packages.neovim-min ]; }).wrapper; }; -} \ No newline at end of file +}