{ self, pkgs, }: let inherit (self.inputs.home-manager.lib) homeManagerConfiguration ; config = { home = { username = "nixvim"; homeDirectory = "/invalid/dir"; stateVersion = "24.11"; }; programs.nixvim = { enable = true; performance.byteCompileLua.enable = true; extraFiles = { "extra-files/test1.lua".text = "vim.opt.tabstop = 2"; "extra-files/test2.lua".source = builtins.toFile "file_source.lua" "vim.opt.tabstop = 2"; "extra-files/test3.lua".source = pkgs.writeText "test3.lua" "vim.opt.tabstop = 2"; "extra-files/test.vim".text = "set tabstop=2"; "extra-files/test.json".text = builtins.toJSON { a = 1; }; }; files = { "files/test.lua".opts.tabstop = 2; "files/test.vim".opts.tabstop = 2; }; }; }; homeFilesByteCompilingEnabled = (homeManagerConfiguration { inherit pkgs; modules = [ self.homeManagerModules.nixvim config { programs.nixvim.performance.byteCompileLua.configs = true; } ]; }).config.home-files; homeFilesByteCompilingDisabled = (homeManagerConfiguration { inherit pkgs; modules = [ self.homeManagerModules.nixvim config { programs.nixvim.performance.byteCompileLua.configs = false; } ]; }).config.home-files; in pkgs.runCommand "home-manager-extra-files-byte-compiling" { } '' is_binary() { ! grep -qI . "$1" } test_byte_compiled() { if ! is_binary "$home_files/.config/nvim/$1"; then echo "File $1 is expected to be byte compiled, but it's not" exit 1 fi } test_not_byte_compiled() { if is_binary "$home_files/.config/nvim/$1"; then echo "File $1 is not expected to be byte compiled, but it is" exit 1 fi } # Test directory with extraFiles byte compiling enabled home_files="${homeFilesByteCompilingEnabled}" echo "Testing home-files with extraFiles byte compiling enabled" # extraFiles test_byte_compiled extra-files/test1.lua test_byte_compiled extra-files/test2.lua test_byte_compiled extra-files/test3.lua test_not_byte_compiled extra-files/test.vim test_not_byte_compiled extra-files/test.json # files test_byte_compiled files/test.lua test_not_byte_compiled files/test.vim # Test directory with extraFiles byte compiling disabled home_files="${homeFilesByteCompilingDisabled}" echo "Testing home-files with extraFiles byte compiling disabled" # extraFiles test_not_byte_compiled extra-files/test1.lua test_not_byte_compiled extra-files/test2.lua test_not_byte_compiled extra-files/test3.lua test_not_byte_compiled extra-files/test.vim test_not_byte_compiled extra-files/test.json # files test_not_byte_compiled files/test.lua test_not_byte_compiled files/test.vim touch $out ''