export ktxt2
This commit is contained in:
@@ -274,7 +274,7 @@
|
||||
(function :Void newKissClass [&opt _]
|
||||
(awaitLet [className (inputBox)]
|
||||
(let [currentFile
|
||||
.fileName .document activeTextEditor
|
||||
activeTextEditor.document.fileName
|
||||
currentFileDirectory
|
||||
(Path.directory currentFile)
|
||||
haxeFile
|
||||
|
@@ -28,11 +28,36 @@
|
||||
[sourceText outputText]))
|
||||
|
||||
(function exportKtxt2Files [&opt _]
|
||||
(infoMessage _)
|
||||
(let [[sourceText outputText] (splitFileContents)
|
||||
ktxt2Filename (haxe.io.Path.withoutDirectory activeTextEditor.document.fileName)
|
||||
ktxt2FullFilename activeTextEditor.document.fileName
|
||||
ktxt2Directory (haxe.io.Path.directory ktxt2FullFilename)
|
||||
ktxt2Filename (haxe.io.Path.withoutDirectory ktxt2FullFilename)
|
||||
[baseFilename sourceExt outputExt ktxt2Ext] (ktxt2Filename.split ".")
|
||||
sourceFilename "${baseFilename}.${sourceExt}"
|
||||
outputFilename "${baseFilename}.${outputExt}"]
|
||||
(infoMessage "${sourceFilename}: $sourceText")
|
||||
(infoMessage "${outputFilename}: $outputText")))
|
||||
sourceFilename (joinPath ktxt2Directory "${baseFilename}.${sourceExt}")
|
||||
outputFilename (joinPath ktxt2Directory "${baseFilename}.${outputExt}")]
|
||||
// Use editors instead of File.saveContent for this, so the user can undo the export if
|
||||
// it overwrites something!
|
||||
(defMacro overwriteDocument [document content]
|
||||
`(let [document ,document content ,content]
|
||||
(awaitLet [editor (Vscode.window.showTextDocument document)]
|
||||
(editor.edit
|
||||
->e (e.replace (new Range (document.positionAt 0) (document.positionAt .length (document.getText))) content)))))
|
||||
(function uriFor [filename]
|
||||
(let [uri (Uri.file filename)]
|
||||
(if (sys.FileSystem.exists filename)
|
||||
uri
|
||||
(uri.with (object scheme "untitled")))))
|
||||
(awaitLet [sourceDocument
|
||||
(Vscode.workspace.openTextDocument (uriFor sourceFilename))
|
||||
sourceEditSuccess
|
||||
(overwriteDocument sourceDocument sourceText)
|
||||
outputDocument
|
||||
(Vscode.workspace.openTextDocument (uriFor outputFilename))
|
||||
outputEditSuccess
|
||||
(overwriteDocument outputDocument outputText)]
|
||||
(assert (and sourceEditSuccess outputEditSuccess))
|
||||
(awaitLet [saveSourceSuccess
|
||||
(sourceDocument.save)
|
||||
saveOutputSuccess
|
||||
(outputDocument.save)]
|
||||
(assert (and saveSourceSuccess saveOutputSuccess))))))
|
Reference in New Issue
Block a user