From 7d4dc3a6ad74d04277c814e22ae479d06aa6a0a8 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Fri, 29 Oct 2021 17:47:30 -0400 Subject: [PATCH] throw errors from KTxt2 kiss interpolation --- projects/kiss-vscode/src/ktxt2/KTxt2.kiss | 8 ++++---- projects/kiss-vscode/src/ktxt2/KTxt2EditorProvider.kiss | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/kiss-vscode/src/ktxt2/KTxt2.kiss b/projects/kiss-vscode/src/ktxt2/KTxt2.kiss index 0e3bcfad..87e606b2 100644 --- a/projects/kiss-vscode/src/ktxt2/KTxt2.kiss +++ b/projects/kiss-vscode/src/ktxt2/KTxt2.kiss @@ -61,7 +61,7 @@ elements)) // Return [sourceFile outputFile] -(function :Array extractFileContents [:Stream fileStream] +(function :Array extractFileContents [:Stream fileStream :String->Dynamic reportError] (let [&mut sourceText "" &mut outputText "" interp (new KissInterp)] @@ -70,13 +70,13 @@ ((Block (objectWith source output)) (+= sourceText source) (dictSet interp.variables "source" source) + (dictSet interp.variables "R" re_flex.R) (+= outputText // Don't run the expensive "evalKiss" if there is no interpolation in the block! (if (= -1 (output.indexOf "\$")) output - (let [escapedOutput - (output.replace "\"" "\\\"")] - (interp.evalKiss "\"${escapedOutput}\""))))) + (try (interp.evalKiss "\"${output}\"") + (catch [error] (reportError "Export templating error $error") (throw error)))))) (otherwise))) [sourceText outputText])) diff --git a/projects/kiss-vscode/src/ktxt2/KTxt2EditorProvider.kiss b/projects/kiss-vscode/src/ktxt2/KTxt2EditorProvider.kiss index ab340edc..ab240f11 100644 --- a/projects/kiss-vscode/src/ktxt2/KTxt2EditorProvider.kiss +++ b/projects/kiss-vscode/src/ktxt2/KTxt2EditorProvider.kiss @@ -104,7 +104,7 @@ (function exportSourceAndOutputFiles [document] (let [:String ktxt2FullFilename document.fileName - [sourceText outputText] (KTxt2.extractFileContents (Stream.fromFile ktxt2FullFilename)) + [sourceText outputText] (KTxt2.extractFileContents (Stream.fromFile ktxt2FullFilename) ->message (errorMessage message)) ktxt2Directory (ktxt2FullFilename.directory) ktxt2Filename (ktxt2FullFilename.withoutDirectory) [baseFilename sourceExt outputExt ktxt2Ext] (ktxt2Filename.split ".")