diff --git a/kiss/src/kiss/Kiss.hx b/kiss/src/kiss/Kiss.hx index 685569d3..a7c49cec 100644 --- a/kiss/src/kiss/Kiss.hx +++ b/kiss/src/kiss/Kiss.hx @@ -133,6 +133,22 @@ class Kiss { }); } + /** + * Build macro: add fields to a Haxe class by compiling multiple Kiss files in order with the same KissState + */ + public static function buildAll(kissFiles:Array, ?k:KissState, useClassFields = true):Array { + if (k == null) + k = defaultKissState(); + + var fields = []; + + for (file in kissFiles) { + fields = fields.concat(build(file, k, useClassFields)); + } + + return fields; + } + public static function readerExpToField(exp:ReaderExp, k:KissState, errorIfNot = true):Null { var fieldForms = k.fieldForms; diff --git a/projects/kiss-vscode/config/KissConfig.hx b/projects/kiss-vscode/config/KissConfig.hx index 179033c9..37cd7377 100644 --- a/projects/kiss-vscode/config/KissConfig.hx +++ b/projects/kiss-vscode/config/KissConfig.hx @@ -6,6 +6,5 @@ import js.lib.Promise; typedef Command = (?String) -> Void; -@:build(kiss.Kiss.build("Config.kiss")) -@:build(kiss.Kiss.build("KissConfig.kiss")) +@:build(kiss.Kiss.buildAll(["KissConfig.kiss", "Config.kiss"])) class KissConfig {}