diff --git a/plugins/by-name/molten/default.nix b/plugins/by-name/molten/default.nix index d4c34dacb2..6a3dadc97c 100644 --- a/plugins/by-name/molten/default.nix +++ b/plugins/by-name/molten/default.nix @@ -1,4 +1,5 @@ { + config, lib, helpers, ... @@ -80,6 +81,7 @@ mkVimPlugin { [ "none" "image.nvim" + "wezterm" ] '' How images are displayed. @@ -236,5 +238,13 @@ mkVimPlugin { }; }; - extraConfig = cfg: { extraPython3Packages = cfg.python3Dependencies; }; + extraConfig = cfg: { + extraPython3Packages = cfg.python3Dependencies; + + warnings = + lib.optional (cfg.settings.image_provider == "wezterm" && !config.plugins.wezterm.enable) + '' + Nixvim (plugins.molten): The `wezterm` plugin is not enabled, so the `molten` plugin's `image_provider` setting will have no effect. + ''; + }; } diff --git a/plugins/by-name/wezterm/default.nix b/plugins/by-name/wezterm/default.nix new file mode 100644 index 0000000000..9686039b2f --- /dev/null +++ b/plugins/by-name/wezterm/default.nix @@ -0,0 +1,37 @@ +{ + lib, + pkgs, + ... +}: +let + inherit (lib.nixvim) defaultNullOpts; +in +lib.nixvim.plugins.neovim.mkNeovimPlugin { + name = "wezterm"; + packPathName = "wezterm.nvim"; + package = "wezterm-nvim"; + + maintainers = [ lib.maintainers.khaneliman ]; + + extraOptions = { + weztermPackage = lib.mkPackageOption pkgs "wezterm" { + nullable = true; + }; + }; + + settingsOptions = { + create_commands = defaultNullOpts.mkBool true '' + Whether to create plugin commands. + ''; + }; + + settingsExample = { + create_commands = false; + }; + + extraConfig = cfg: { + extraPackages = [ + cfg.weztermPackage + ]; + }; +} diff --git a/tests/test-sources/plugins/by-name/wezterm/default.nix b/tests/test-sources/plugins/by-name/wezterm/default.nix new file mode 100644 index 0000000000..97de02c061 --- /dev/null +++ b/tests/test-sources/plugins/by-name/wezterm/default.nix @@ -0,0 +1,23 @@ +{ + empty = + { pkgs, ... }: + { + plugins.wezterm = { + enable = true; + weztermPackage = pkgs.wezterm; + }; + }; + + defaults = + { pkgs, ... }: + { + plugins.wezterm = { + enable = true; + weztermPackage = pkgs.wezterm; + + settings = { + create_commands = true; + }; + }; + }; +}