Isolate split detect on '<{' '}' block

This commit is contained in:
Hasinjato 2026-08-12 10:45:36 +03:00
parent bd235d7a19
commit 22a4c4bdf6

View file

@ -6,18 +6,13 @@ import kotlinx.coroutines.*
import mg.dot.feufaro.FileRepository import mg.dot.feufaro.FileRepository
import mg.dot.feufaro.SaveSettings import mg.dot.feufaro.SaveSettings
import mg.dot.feufaro.getGlobalTemplate import mg.dot.feufaro.getGlobalTemplate
import mg.dot.feufaro.getPlatform
import mg.dot.feufaro.launchFilePicker import mg.dot.feufaro.launchFilePicker
import mg.dot.feufaro.midi.MidiPitch import mg.dot.feufaro.midi.MidiPitch
import mg.dot.feufaro.midi.MidiWriterKotlin import mg.dot.feufaro.midi.MidiWriterKotlin
import mg.dot.feufaro.midi.MidiWriterforEXport import mg.dot.feufaro.midi.MidiWriterforEXport
import mg.dot.feufaro.provideSettings import mg.dot.feufaro.provideSettings
import mg.dot.feufaro.viewmodel.PartitionMetadata import mg.dot.feufaro.viewmodel.PartitionMetadata
import mg.dot.feufaro.transformLyricsInput
import org.koin.core.component.inject
import java.io.File import java.io.File
import java.util.prefs.Preferences
import kotlin.getValue
import kotlin.math.min import kotlin.math.min
//@todo: ffpm-164.txt O10:s3:mflswss // alternative notes for stanza 3 only //@todo: ffpm-164.txt O10:s3:mflswss // alternative notes for stanza 3 only
@ -2105,6 +2100,7 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository
} }
var commentNumber = -1 var commentNumber = -1
var inSplit = false var inSplit = false
var expectSplitBrace = false
val lineChar = lineRepeated.toCharArray() val lineChar = lineRepeated.toCharArray()
lineChar.forEach { lineChar.forEach {
when (it) { when (it) {
@ -2119,9 +2115,14 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository
} }
// blocs de split <[...] // blocs de split <[...]
'<' -> { } '<' -> {
expectSplitBrace = true
}
'{' -> { '{' -> {
if (expectSplitBrace) {
inSplit = true inSplit = true
expectSplitBrace = false
}
} }
'}' -> { '}' -> {
inSplit = false inSplit = false
@ -2238,6 +2239,9 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository
trioletCount = 2 trioletCount = 2
nextDuration = nextDuration - nextTrioletDuration } nextDuration = nextDuration - nextTrioletDuration }
} }
else -> {
expectSplitBrace = false
}
} }
lastIt = it lastIt = it
} }