From cfdb14cf768f2971f6efe2e333c620571f30fad1 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Wed, 18 Jan 2023 13:39:42 +0100 Subject: vim: refactor, allowing different files like ftplugin --- common/vim.nix | 48 +++++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 21 deletions(-) (limited to 'common/vim.nix') diff --git a/common/vim.nix b/common/vim.nix index 2f36958..bebfb0e 100644 --- a/common/vim.nix +++ b/common/vim.nix @@ -12,8 +12,8 @@ inputs: { cfg = config.vim; - myConfigPackage = with lib; let - config = '' + variables = with lib; + pkgs.writeTextDir "lua/myVariables.lua" '' -- Autogenerated variables from the NixOS configuration ${(concatStringsSep @@ -21,35 +21,32 @@ inputs: { (mapAttrsToList (variable: value: "vim.g.${variable} = ${luaFormat.generate value}") cfg.variables))} + ''; - -- vim.lua from the NixOS configuration + extraConfig = pkgs.writeTextDir "lua/myExtraConfig.lua" '' + -- luaConfig from the NixOS configuration - ${builtins.readFile ../dotfiles/vim.lua} + ${cfg.luaConfig} + ''; - -- luaConfig from the NixOS configuration + myGeneratedConfigPackage = pkgs.symlinkJoin { + name = "myGeneratedConfig-nvim"; + paths = [variables extraConfig]; + }; - ${cfg.luaConfig} - ''; - in - pkgs.runCommand - "myConfig" - { - pname = "myConfig"; - inherit config; - passAsFile = ["config"]; - runLocal = true; - } - '' - mkdir -p "$out/lua" - mv "$configPath" "$out/lua/myConfig.lua" - ''; + myConfigPackage = pkgs.unstable.vimUtils.buildVimPluginFrom2Nix { + name = "myConfig-nvim"; + src = ../dotfiles/vim; + }; myNeovim = wrapNeovim neovim-unwrapped { configure = { inherit (config.vim) beforePlugins; customRC = '' + lua require("myVariables") lua require("myConfig") + lua require("myExtraConfig") ${cfg.extraConfig} ''; @@ -57,6 +54,7 @@ inputs: { packages.myVimPackage = with vimPlugins; { start = [ + myGeneratedConfigPackage myConfigPackage # Dependencies @@ -72,6 +70,15 @@ inputs: { diffview-nvim nvim-notify indent-blankline-nvim + (pkgs.unstable.vimUtils.buildVimPluginFrom2Nix { + name = "oil.nvim"; + src = pkgs.fetchFromGitHub { + owner = "stevearc"; + repo = "oil.nvim"; + rev = "abfc455f62dac385b0fc816f37c64dffead0bcf3"; + hash = "sha256-oA220nzaBlFnJ0s23oabIW3XV1tWml5kBuBkTImOPjM="; + }; + }) # Completion nvim-cmp @@ -92,7 +99,6 @@ inputs: { # Telescope telescope-nvim - telescope-file-browser-nvim telescope-ui-select-nvim # Treesitter -- cgit v1.2.3