mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-11-04 12:42:21 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{lib, ...}: let
 | 
						|
  inherit (lib.options) mkEnableOption mkOption;
 | 
						|
  inherit (lib.modules) mkRenamedOptionModule;
 | 
						|
  inherit (lib.types) int str enum attrsOf either;
 | 
						|
  inherit (lib.nvim.types) mkPluginSetupOption luaInline;
 | 
						|
in {
 | 
						|
  imports = let
 | 
						|
    renamedSetupOpt = name:
 | 
						|
      mkRenamedOptionModule
 | 
						|
      ["vim" "notify" "nvim-notify" name]
 | 
						|
      ["vim" "notify" "nvim-notify" "setupOpts" name];
 | 
						|
  in [
 | 
						|
    (renamedSetupOpt "stages")
 | 
						|
    (renamedSetupOpt "timeout")
 | 
						|
    (renamedSetupOpt "background_colour")
 | 
						|
    (renamedSetupOpt "position")
 | 
						|
    (renamedSetupOpt "icons")
 | 
						|
  ];
 | 
						|
 | 
						|
  options.vim.notify.nvim-notify = {
 | 
						|
    enable = mkEnableOption "nvim-notify notifications";
 | 
						|
 | 
						|
    setupOpts = mkPluginSetupOption "nvim-notify" {
 | 
						|
      render = mkOption {
 | 
						|
        type = either (enum ["default" "minimal" "simple" "compact" "wrapped-compact"]) luaInline;
 | 
						|
        default = "compact";
 | 
						|
        description = "Custom rendering method to be used for displaying notifications";
 | 
						|
      };
 | 
						|
 | 
						|
      stages = mkOption {
 | 
						|
        type = enum ["fade_in_slide_out" "fade" "slide" "static"];
 | 
						|
        default = "fade_in_slide_out";
 | 
						|
        description = "The stages of the notification";
 | 
						|
      };
 | 
						|
 | 
						|
      timeout = mkOption {
 | 
						|
        type = int;
 | 
						|
        default = 1000;
 | 
						|
        description = "The timeout of the notification";
 | 
						|
      };
 | 
						|
 | 
						|
      background_colour = mkOption {
 | 
						|
        type = str;
 | 
						|
        default = "NotifyBackground";
 | 
						|
        description = "The background colour of the notification";
 | 
						|
      };
 | 
						|
 | 
						|
      position = mkOption {
 | 
						|
        type = enum ["top_left" "top_right" "bottom_left" "bottom_right"];
 | 
						|
        default = "top_right";
 | 
						|
        description = "The position of the notification";
 | 
						|
      };
 | 
						|
 | 
						|
      icons = mkOption {
 | 
						|
        type = attrsOf str;
 | 
						|
        description = "The icons of the notification";
 | 
						|
        default = {
 | 
						|
          ERROR = "";
 | 
						|
          WARN = "";
 | 
						|
          INFO = "";
 | 
						|
          DEBUG = "";
 | 
						|
          TRACE = "";
 | 
						|
        };
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |