diff --git a/projects/kiss-vscode/build.hxml b/projects/kiss-vscode/build.hxml index 80f68ed6..4b35b877 100644 --- a/projects/kiss-vscode/build.hxml +++ b/projects/kiss-vscode/build.hxml @@ -2,6 +2,7 @@ -lib hxnodejs -lib kiss -lib uuid +-lib hscript -cp src -js bin/extension.js -D analyzer-optimize diff --git a/projects/kiss-vscode/config/KissConfig.hx b/projects/kiss-vscode/config/KissConfig.hx index b661f8fd..ef560450 100644 --- a/projects/kiss-vscode/config/KissConfig.hx +++ b/projects/kiss-vscode/config/KissConfig.hx @@ -4,6 +4,10 @@ import kiss.Kiss; import kiss.Prelude; import vscode.*; import js.lib.Promise; +import js.node.ChildProcess; +import js.node.buffer.Buffer; +import hscript.Parser; +import hscript.Interp; typedef Command = (String) -> Void; diff --git a/projects/kiss-vscode/config/KissConfig.kiss b/projects/kiss-vscode/config/KissConfig.kiss index 0ff6d82e..9235ecb6 100644 --- a/projects/kiss-vscode/config/KissConfig.kiss +++ b/projects/kiss-vscode/config/KissConfig.kiss @@ -46,11 +46,21 @@ (defvar :Map commands (new Map)) (defvar &mut :String lastCommand null) +(defvar parser (new Parser)) +(defvar interp (new Interp)) /** * Functionality */ +(defun convertToHScript [kiss] + (.toString (the Buffer .stdout (ChildProcess.spawnSync "haxelib" ["run" "kiss" "--all"] (object input kiss))))) + +(defun evalString [kiss] + (interp.execute + (parser.parseString + (convertToHScript kiss)))) + (defun runCommand [&opt command] (if command {(set lastCommand command) ((dictGet commands command) (selectedText))}