diff --git a/modules/programs/neovim.nix b/modules/programs/neovim.nix index 88683e40..4560c930 100644 --- a/modules/programs/neovim.nix +++ b/modules/programs/neovim.nix @@ -365,15 +365,13 @@ in { in mkMerge ( # writes runtime (map (x: x.runtime) pluginsNormalized) ++ [{ - "nvim/init-home-manager.vim" = - mkIf (neovimConfig.neovimRcContent != "") { - text = neovimConfig.neovimRcContent; - }; "nvim/init.lua" = let luaRcContent = lib.optionalString (neovimConfig.neovimRcContent != "") - "vim.cmd [[source ${config.xdg.configHome}/nvim/init-home-manager.vim]]" - + lib.optionalString hasLuaConfig + "vim.cmd [[source ${ + pkgs.writeText "nvim-init-home-manager.vim" + neovimConfig.neovimRcContent + }]]" + lib.optionalString hasLuaConfig config.programs.neovim.generatedConfigs.lua; in mkIf (luaRcContent != "") { text = luaRcContent; }; diff --git a/tests/modules/programs/neovim/plugin-config.nix b/tests/modules/programs/neovim/plugin-config.nix index 843330b9..e4921aae 100644 --- a/tests/modules/programs/neovim/plugin-config.nix +++ b/tests/modules/programs/neovim/plugin-config.nix @@ -7,16 +7,14 @@ with lib; programs.neovim = { enable = true; extraConfig = '' - " This 'extraConfig' should be present in vimrc + let g:hmExtraConfig='HM_EXTRA_CONFIG' ''; plugins = with pkgs.vimPlugins; [ vim-nix { plugin = vim-commentary; config = '' - " plugin-specific config - autocmd FileType c setlocal commentstring=//\ %s - autocmd FileType c setlocal comments=:// + let g:hmPlugins='HM_PLUGINS_CONFIG' ''; } ]; @@ -24,11 +22,12 @@ with lib; }; nmt.script = '' - vimrc="$TESTED/home-files/.config/nvim/init-home-manager.vim" - vimrcNormalized="$(normalizeStorePaths "$vimrc")" - - assertFileExists "$vimrc" - assertFileContent "$vimrcNormalized" "${./plugin-config.vim}" + vimout=$(mktemp) + echo "redir >> /dev/stdout | echo g:hmExtraConfig | echo g:hmPlugins | redir END" \ + | ${pkgs.neovim}/bin/nvim -es -u "$TESTED/home-files/.config/nvim/init.lua" \ + > "$vimout" + assertFileContains "$vimout" "HM_EXTRA_CONFIG" + assertFileContains "$vimout" "HM_PLUGINS_CONFIG" ''; }; } diff --git a/tests/modules/programs/neovim/plugin-config.vim b/tests/modules/programs/neovim/plugin-config.vim deleted file mode 100644 index 8f2e1062..00000000 --- a/tests/modules/programs/neovim/plugin-config.vim +++ /dev/null @@ -1,5 +0,0 @@ -" plugin-specific config -autocmd FileType c setlocal commentstring=//\ %s -autocmd FileType c setlocal comments=:// - -" This 'extraConfig' should be present in vimrc