diff --git a/lib/types/default.nix b/lib/types/default.nix index 59a5181c..22b728da 100644 --- a/lib/types/default.nix +++ b/lib/types/default.nix @@ -4,6 +4,6 @@ typesLanguage = import ./languages.nix {inherit lib;}; in { inherit (typesDag) dagOf; - inherit (typesPlugin) pluginsOpt extraPluginType mkPluginSetupOption; + inherit (typesPlugin) pluginsOpt extraPluginType mkPluginSetupOption rawLua; inherit (typesLanguage) diagnostics mkGrammarOption; } diff --git a/lib/types/plugins.nix b/lib/types/plugins.nix index da1d6bae..813108ff 100644 --- a/lib/types/plugins.nix +++ b/lib/types/plugins.nix @@ -145,6 +145,18 @@ in { type = pluginsType; }; + rawLua = lib.mkOptionType { + name = "rawLua"; + check = val: isString val || val ? __raw; + merge = loc: defs: let + val = + if isString loc + then {__raw = val;} + else loc; + in + lib.mergeOneOption val defs; + }; + # opts is a attrset of options, example: # ``` # mkPluginSetupOption "telescope" {