Paragraph break placeholder in ktxt2

This commit is contained in:
2021-11-01 13:25:35 -04:00
parent 03c6c17c6e
commit c84d4d73a4
3 changed files with 12 additions and 2 deletions

View File

@@ -60,6 +60,10 @@
(elements.push (Block block)))) (elements.push (Block block))))
elements)) elements))
// To save window space after each block editor, ¶ can be used in place of \n\n
(function :String applySpecialChars [:String text]
(text.replace "¶" "\n\n"))
// Return [sourceFile outputFile] // Return [sourceFile outputFile]
(function :Array<String> extractFileContents [:Stream fileStream :String->Dynamic reportError] (function :Array<String> extractFileContents [:Stream fileStream :String->Dynamic reportError]
(let [&mut sourceText "" (let [&mut sourceText ""
@@ -78,7 +82,7 @@
(try (interp.evalKiss "\"${output}\"") (try (interp.evalKiss "\"${output}\"")
(catch [error] (reportError "Export templating error $error") (throw error)))))) (catch [error] (reportError "Export templating error $error") (throw error))))))
(otherwise))) (otherwise)))
[sourceText outputText])) (.map [sourceText outputText] applySpecialChars)))
(function :Map<String,KTxt2Conversion> validConversions [:Array<KTxt2Conversion> conversions :String sourceFile :String outputFile :String source] (function :Map<String,KTxt2Conversion> validConversions [:Array<KTxt2Conversion> conversions :String sourceFile :String outputFile :String source]
(let [validMap (new Map)] (let [validMap (new Map)]

View File

@@ -8,6 +8,7 @@ import js.lib.Promise;
import sys.io.File; import sys.io.File;
using haxe.io.Path; using haxe.io.Path;
using StringTools;
typedef MessageFromEditor = { typedef MessageFromEditor = {
type:String, type:String,

View File

@@ -9,6 +9,11 @@
(defNew [&prop :ExtensionContext context]) (defNew [&prop :ExtensionContext context])
(method :String insertSpecialChars [:String text]
(if (text.endsWith "\n\n")
(+ (text.substr 0 (- text.length 2)) "¶")
text))
(method :Promise<Void> resolveCustomTextEditor [:TextDocument document :WebviewPanel webviewPanel :CancellationToken _token] (method :Promise<Void> resolveCustomTextEditor [:TextDocument document :WebviewPanel webviewPanel :CancellationToken _token]
(set webviewPanel.webview.options (object enableScripts true)) (set webviewPanel.webview.options (object enableScripts true))
(set webviewPanel.webview.html (htmlForWebview webviewPanel.webview)) (set webviewPanel.webview.html (htmlForWebview webviewPanel.webview))
@@ -36,7 +41,7 @@
(infoMessage message)) (infoMessage message))
((objectWith [type "replace"] text start end) ((objectWith [type "replace"] text start end)
(makeEdit (makeEdit
->edit (edit.replace document.uri (rangeFromStartEnd start end) text))) ->edit (edit.replace document.uri (rangeFromStartEnd start end) (insertSpecialChars text))))
((objectWith [type "insertBefore"] text position) ((objectWith [type "insertBefore"] text position)
(makeEdit (makeEdit
->edit (edit.insert document.uri (streamPosToOffsetDocumentPos position -KTxt2.blockStartEnd.length) text))) ->edit (edit.insert document.uri (streamPosToOffsetDocumentPos position -KTxt2.blockStartEnd.length) text)))