diff --git a/kiss/src/kiss/Helpers.hx b/kiss/src/kiss/Helpers.hx index 425dc510..393ecc86 100644 --- a/kiss/src/kiss/Helpers.hx +++ b/kiss/src/kiss/Helpers.hx @@ -323,6 +323,7 @@ class Helpers { interp.variables.set("readExpArray", Reader.readExpArray.bind(_, _, k)); interp.variables.set("ReaderExp", ReaderExpDef); interp.variables.set("nextToken", Reader.nextToken.bind(_, "a token")); + interp.variables.set("printExp", printExp); interp.variables.set("kiss", { ReaderExp: { ReaderExpDef: ReaderExpDef @@ -385,6 +386,17 @@ class Helpers { } } + public static function printExp(e:Dynamic, label = "") { + var toPrint = label; + if (label.length > 0) { + toPrint += ": "; + } + var expDef = if (e.def != null) e.def else e; + toPrint += Reader.toString(expDef); + Prelude.printStr(toPrint); + return e; + } + static function evalUnquoteLists(l:Array, k:KissState, ?args:Map):Array { var idx = 0; while (idx < l.length) { diff --git a/kiss/src/kiss/Prelude.hx b/kiss/src/kiss/Prelude.hx index 542af714..9bf49050 100644 --- a/kiss/src/kiss/Prelude.hx +++ b/kiss/src/kiss/Prelude.hx @@ -322,12 +322,21 @@ class Prelude { return f; } - public static dynamic function print(v:T):T { + public static dynamic function printStr(s:String) { #if (sys || hxnodejs) - Sys.println(v); + Sys.println(s); #else - trace(v); + trace(s); #end + } + + public static function print(v:T, label = ""):T { + var toPrint = label; + if (label.length > 0) { + toPrint += ": "; + } + toPrint += Std.string(v); + printStr(toPrint); return v; } diff --git a/kiss/src/test/cases/GenerativeTestCase.kiss b/kiss/src/test/cases/GenerativeTestCase.kiss index e1ce571d..c2022c0f 100644 --- a/kiss/src/test/cases/GenerativeTestCase.kiss +++ b/kiss/src/test/cases/GenerativeTestCase.kiss @@ -28,7 +28,7 @@ ,@(_randomLengthMacroList _randomUncertainExp))} ]))) (defMacro randomFalsyExp [] - ~(_randomFalsyExp)) + (printExp (_randomFalsyExp) "Falsy")) (defMacroFunction _randomTruthyExp [] ((chooseRandom @@ -37,7 +37,7 @@ ->{(_randomLetterString)} ]))) (defMacro randomTruthyExp [] - ~(_randomTruthyExp)) + (printExp (_randomTruthyExp) "Truthy")) (defMacroFunction _randomUncertainExp [] ((chooseRandom diff --git a/projects/kiss-vscode/config/KissConfig.kiss b/projects/kiss-vscode/config/KissConfig.kiss index f513ffc4..1f787868 100644 --- a/projects/kiss-vscode/config/KissConfig.kiss +++ b/projects/kiss-vscode/config/KissConfig.kiss @@ -209,10 +209,7 @@ (registerCommand description (lambda :Void [&opt _] (executeCommand command)))) (function :Void registerBuiltins [] - (set Prelude.print - ->[v] { - (infoMessage (Std.string v)) - v}) + (set Prelude.printStr Vscode.window.showInformationMessage) (registerCommand "Run a [k]iss command" runCommand) (registerCommand "Rerun last command" runLastCommand) (registerCommand "Run a keyboard shortcut command" runKeyboardShortcut)