FileConversionProject.findText

This commit is contained in:
2023-06-22 11:24:50 -06:00
parent 24e2ace896
commit 6dd38debd0
3 changed files with 16 additions and 1 deletions

View File

@@ -9,6 +9,7 @@ import uuid.Uuid;
import sys.io.File;
import sys.FileSystem;
using haxe.io.Path;
using StringTools;
typedef Block = {
id:String,

View File

@@ -228,4 +228,15 @@
(let [vc (validConversions idx reportError)]
(when (= 1 (count vc))
(doFor =>conversionName text vc
(editBlock idx null text null))))))
(editBlock idx null text null))))))
(method :Null<Int> findText [:String text &opt :Int startingIdx :Bool caseSensitive]
(let [blocksToCheck (enumerate blocks)
blocksToCheck (if startingIdx (blocksToCheck.slice startingIdx) blocksToCheck)
text (if caseSensitive text (text.toLowerCase))]
(doFor [idx block] blocksToCheck
(let [:String inText (if caseSensitive block.inText (block.inText.toLowerCase))
:String outText (if caseSensitive block.outText (block.outText.toLowerCase))]
(when (or (inText.contains text) (outText.contains text))
(return idx))))
null))

View File

@@ -27,6 +27,9 @@
(assertEquals "here\n\n" .inText (first project.blocks))
(assertEquals "there" .inText (second project.blocks))
(assertEquals 0 (project.findText "here"))
(assertEquals 1 (project.findText "here" 1))
// Test block joining
(assert !(project.joinBlockDown 1))