From 05d65c969dae4dd8c09e9f441dcc568709a482f6 Mon Sep 17 00:00:00 2001 From: Pim Kunis Date: Sat, 18 Jan 2025 17:17:48 +0100 Subject: [PATCH] Create separate package for neovim --- machines/sue/pim.home.nix | 118 +++----------------------------------- packages.nix | 110 ++++++++++++++++++++++++++++++++++- 2 files changed, 117 insertions(+), 111 deletions(-) diff --git a/machines/sue/pim.home.nix b/machines/sue/pim.home.nix index 9980f04..a836ce9 100644 --- a/machines/sue/pim.home.nix +++ b/machines/sue/pim.home.nix @@ -4,7 +4,9 @@ pkgs, config, ... -}: { +}: let + inherit (self.packages.${pkgs.system}) neovim; +in { config = { pim = { tidal.enable = true; @@ -16,112 +18,7 @@ programs = { chromium.enable = true; - git.extraConfig.core.editor = lib.getExe config.programs.nvf.finalPackage; - - nvf = { - enable = true; - settings = { - vim = { - preventJunkFiles = true; - viAlias = true; - vimAlias = true; - telescope.enable = true; - autopairs.nvim-autopairs.enable = true; - autocomplete.nvim-cmp.enable = true; - snippets.luasnip.enable = true; - filetree.neo-tree.enable = true; - tabline.nvimBufferline.enable = true; - dashboard.alpha.enable = true; - notify.nvim-notify.enable = true; - projects.project-nvim.enable = true; - comments.comment-nvim.enable = true; - - lsp = { - formatOnSave = true; - lightbulb.enable = true; - trouble.enable = true; - lspSignature.enable = true; - otter-nvim.enable = true; - lsplines.enable = true; - }; - - languages = { - enableLSP = true; - enableFormat = true; - enableTreesitter = true; - enableExtraDiagnostics = true; - nix.enable = true; - markdown.enable = true; - bash.enable = true; - clang.enable = true; - css.enable = true; - html.enable = true; - sql.enable = true; - go.enable = true; - python.enable = true; - - rust = { - enable = true; - crates.enable = true; - }; - }; - - visuals = { - nvim-web-devicons.enable = true; - cinnamon-nvim.enable = true; - fidget-nvim.enable = true; - highlight-undo.enable = true; - indent-blankline.enable = true; - cellular-automaton.enable = true; - }; - - statusline.lualine = { - enable = true; - theme = "gruvbox"; - }; - - theme = { - enable = true; - name = "gruvbox"; - style = "dark"; - transparent = false; - }; - - binds = { - whichKey.enable = true; - cheatsheet.enable = true; - }; - - git = { - enable = true; - gitsigns.enable = true; - }; - - utility = { - surround.enable = true; - diffview-nvim.enable = true; - - motion = { - hop.enable = true; - leap.enable = true; - }; - }; - - terminal.toggleterm = { - enable = true; - lazygit.enable = true; - }; - - ui = { - borders.enable = true; - noice.enable = true; - colorizer.enable = true; - smartcolumn.enable = true; - fastaction.enable = true; - }; - }; - }; - }; + git.extraConfig.core.editor = lib.getExe neovim; }; home = { @@ -129,8 +26,8 @@ homeDirectory = "/home/pim"; stateVersion = "23.05"; sessionVariables = { - MANPAGER = "${lib.getExe config.programs.nvf.finalPackage} +Man!"; - EDITOR = lib.getExe config.programs.nvf.finalPackage; + MANPAGER = "${lib.getExe neovim} +Man!"; + EDITOR = lib.getExe neovim; }; }; @@ -141,7 +38,8 @@ }; home.packages = - (with pkgs; [ + [self.packages.${pkgs.system}.neovim] + ++ (with pkgs; [ jellyfin-media-player virt-manager bottles-unwrapped diff --git a/packages.nix b/packages.nix index c5c5267..cb3fa6d 100644 --- a/packages.nix +++ b/packages.nix @@ -2,12 +2,120 @@ nixpkgs, flake-utils, treefmt-nix, + nvf, ... }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; treefmtEval = treefmt-nix.lib.evalModule pkgs ./treefmt.nix; treefmtWrapper = treefmtEval.config.build.wrapper; + neovimConfigured = nvf.lib.neovimConfiguration { + inherit pkgs; + modules = [ + { + config.vim = { + preventJunkFiles = true; + telescope.enable = true; + autopairs.nvim-autopairs.enable = true; + autocomplete.nvim-cmp.enable = true; + snippets.luasnip.enable = true; + filetree.neo-tree.enable = true; + tabline.nvimBufferline.enable = true; + dashboard.alpha.enable = true; + notify.nvim-notify.enable = true; + projects.project-nvim.enable = true; + comments.comment-nvim.enable = true; + + lsp = { + formatOnSave = true; + lightbulb.enable = true; + trouble.enable = true; + lspSignature.enable = true; + otter-nvim.enable = true; + lsplines.enable = true; + }; + + languages = { + enableLSP = true; + enableFormat = true; + enableTreesitter = true; + enableExtraDiagnostics = true; + nix.enable = true; + markdown.enable = true; + bash.enable = true; + clang.enable = true; + css.enable = true; + html.enable = true; + sql.enable = true; + go.enable = true; + python.enable = true; + + rust = { + enable = true; + crates.enable = true; + }; + }; + + visuals = { + nvim-web-devicons.enable = true; + cinnamon-nvim.enable = true; + fidget-nvim.enable = true; + highlight-undo.enable = true; + indent-blankline.enable = true; + cellular-automaton.enable = true; + }; + + statusline.lualine = { + enable = true; + theme = "gruvbox"; + }; + + theme = { + enable = true; + name = "gruvbox"; + style = "dark"; + transparent = false; + }; + + binds = { + whichKey.enable = true; + cheatsheet.enable = true; + }; + + git = { + enable = true; + gitsigns.enable = true; + }; + + utility = { + surround.enable = true; + diffview-nvim.enable = true; + + motion = { + hop.enable = true; + leap.enable = true; + }; + }; + + terminal.toggleterm = { + enable = true; + lazygit.enable = true; + }; + + ui = { + borders.enable = true; + noice.enable = true; + colorizer.enable = true; + smartcolumn.enable = true; + fastaction.enable = true; + }; + }; + } + ]; + }; in { - packages.formatter = treefmtWrapper; + packages = { + formatter = treefmtWrapper; + inherit (neovimConfigured) neovim; + }; })