{lib, ...}: let inherit (lib.options) mkOption mkEnableOption; inherit (lib.types) int str nullOr listOf bool; inherit (lib.nvim.types) mkPluginSetupOption; in { options.vim.fun = { syntax-gaslighting = { enable = mkEnableOption "Thats no even a real option, you're crazy."; setupOpts = mkPluginSetupOption "syntax-gaslighting" { gaslighting_chance = mkOption { type = nullOr int; default = 5; description = "Set the chance of gaslighting per line (1-100%)."; }; min_line_length = mkOption { type = nullOr int; default = 10; description = "Minimum line length to apply gaslighting."; }; messages = mkOption { type = nullOr (listOf str); default = null; description = "Custom messages for gaslighting."; }; merge_messages = mkOption { type = bool; default = false; description = '' Merge user messages with the default ones. If disabled, the messages table will override default messages. ''; }; debounce_delay = mkOption { type = nullOr int; default = 500; description = "Debounce delay for updates in milliseconds."; }; auto_update = mkOption { type = bool; default = true; description = "Auto-update on buffer events."; }; filetypes_to_ignore = mkOption { type = nullOr (listOf str); default = [ "netrw" ]; description = "List of filetypes to ignore."; }; }; }; }; }