refactor(tui): migrate renderer from Mosaic to tamboui
Replaces the Mosaic 0.18 string-frame renderer with tamboui 0.2.1-SNAPSHOT to unlock a cell buffer, widget catalog, and real layout engine. Domain core (state/reducer/ws/input) is unchanged; only the renderer and the key mapper are rewritten. Fixes a latent Mosaic-mapper bug where q/n/c/a/r/s// were swallowed inside input modes by making the new mapper mode-aware.
This commit is contained in:
+30
-3
@@ -1,12 +1,22 @@
|
||||
plugins {
|
||||
id 'org.jetbrains.kotlin.jvm'
|
||||
id 'org.jetbrains.kotlin.plugin.serialization'
|
||||
id 'org.jetbrains.kotlin.plugin.compose'
|
||||
id 'application'
|
||||
}
|
||||
|
||||
application {
|
||||
mainClass = 'com.correx.apps.tui.MainKt'
|
||||
mainClass = 'com.correx.apps.tui.TuiAppKt'
|
||||
}
|
||||
|
||||
repositories {
|
||||
maven {
|
||||
url 'https://central.sonatype.com/repository/maven-snapshots/'
|
||||
mavenContent { snapshotsOnly() }
|
||||
}
|
||||
}
|
||||
|
||||
configurations.all {
|
||||
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -19,7 +29,11 @@ dependencies {
|
||||
implementation "io.ktor:ktor-client-websockets:$ktor_version"
|
||||
implementation "io.ktor:ktor-client-logging:$ktor_version"
|
||||
|
||||
implementation "com.jakewharton.mosaic:mosaic-runtime:0.18.0"
|
||||
implementation platform('dev.tamboui:tamboui-bom:0.2.1-SNAPSHOT')
|
||||
implementation 'dev.tamboui:tamboui-tui'
|
||||
implementation 'dev.tamboui:tamboui-widgets'
|
||||
implementation 'dev.tamboui:tamboui-core'
|
||||
runtimeOnly 'dev.tamboui:tamboui-jline3-backend'
|
||||
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinx_coroutines_version"
|
||||
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinx_serialization_version"
|
||||
|
||||
@@ -31,6 +45,19 @@ dependencies {
|
||||
|
||||
tasks.named('test') { useJUnitPlatform() }
|
||||
|
||||
tasks.register('tuiStartScripts', CreateStartScripts) {
|
||||
mainClass = 'com.correx.apps.tui.TuiAppKt'
|
||||
applicationName = 'tui'
|
||||
outputDir = file("$buildDir/scripts-tui")
|
||||
classpath = tasks.named('startScripts').get().classpath
|
||||
}
|
||||
|
||||
distributions.named('main').configure {
|
||||
contents {
|
||||
from(tasks.named('tuiStartScripts')) { into 'bin' }
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType(Tar).configureEach { duplicatesStrategy = DuplicatesStrategy.EXCLUDE }
|
||||
tasks.withType(Zip).configureEach { duplicatesStrategy = DuplicatesStrategy.EXCLUDE }
|
||||
tasks.named("installDist") { duplicatesStrategy = DuplicatesStrategy.EXCLUDE }
|
||||
|
||||
Reference in New Issue
Block a user