Skip to content

Commit

Permalink
Merge branch 'trunk' into epicdima/run_different_phases_separately
Browse files Browse the repository at this point in the history
  • Loading branch information
JakeWharton committed Sep 11, 2024
2 parents 20a3f0b + 6b5f3e3 commit f7f21ac
Show file tree
Hide file tree
Showing 51 changed files with 4,177 additions and 383 deletions.
8 changes: 8 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,15 @@ jobs:
with:
gradle-home-cache-cleanup: true

- uses: goto-bus-stop/setup-zig@v2
with:
version: 0.13.0
- run: zig build -p src/jvmMain/resources/jni
working-directory: mosaic-terminal

- run: ./gradlew build :samples:jest:run :mosaic-runtime:dokkaHtml
env:
MOSAIC_RAW_MODE: false

- run: ./gradlew publish
if: ${{ github.ref == 'refs/heads/trunk' && github.repository == 'JakeWharton/mosaic' }}
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ jobs:
distribution: 'zulu'
java-version: 11

- uses: goto-bus-stop/setup-zig@v2
with:
version: 0.13.0
- run: zig build -p src/jvmMain/resources/jni
working-directory: mosaic-terminal

- run: ./gradlew publish
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

New:
- Support synchronized terminal update for rendering.
- The terminal cursor is now automatically hidden during rendering and restored afterwards.
- Use `Modifier.onKeyEvent` or `Modifier.onPreKeyEvent` to listen to keyboard events.

Changed:
- Сhange `DrawScope#drawRect` API with the ability to draw with text characters and specify `DrawStyle` (`Fill` or `Stroke`).
Expand Down
3 changes: 2 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ buildscript {
classpath libs.poko.gradlePlugin
classpath libs.spotless.gradlePlugin
classpath libs.binary.compatibility.validator.gradlePlugin
classpath libs.cklib.gradlePlugin
}
repositories {
mavenCentral()
Expand Down Expand Up @@ -44,7 +45,7 @@ allprojects {
apply plugin: 'com.diffplug.spotless'
spotless {
kotlin {
target("src/**/*.kt")
target('src/**/*.kt')
ktlint(libs.ktlint.core.get().version)
.editorConfigOverride([
'ktlint_standard_filename': 'disabled',
Expand Down
1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ kotlin.mpp.stability.nowarn=true
# This is needed for the JB Compose runtime to link on native targets. They also use this flag
# in their samples. Over time it should be removed once they figure out why it was needed.
kotlin.native.cacheKind=none
kotlin.mpp.enableCInteropCommonization=true

systemProp.org.gradle.internal.http.socketTimeout=120000

Expand Down
10 changes: 8 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
[versions]
kotlin = "2.0.20"
kotlinx-coroutines = "1.8.1"
mordant = "3.0.0"

[libraries]
kotlin-plugin-core = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
Expand All @@ -16,14 +17,19 @@ maven-publish-gradlePlugin = "com.vanniktech:gradle-maven-publish-plugin:0.29.0"
dokka-gradlePlugin = "org.jetbrains.dokka:dokka-gradle-plugin:1.9.20"
poko-gradlePlugin = "dev.drewhamilton.poko:poko-gradle-plugin:0.17.0"
binary-compatibility-validator-gradlePlugin = "org.jetbrains.kotlinx:binary-compatibility-validator:0.16.3"
cklib-gradlePlugin = "co.touchlab:cklib-gradle-plugin:0.3.3"

spotless-gradlePlugin = "com.diffplug.spotless:spotless-plugin-gradle:6.25.0"
ktlint-core = "com.pinterest.ktlint:ktlint-cli:1.3.1"
ktlint-composeRules = "io.nlopez.compose.rules:ktlint:0.4.10"
ktlint-composeRules = "io.nlopez.compose.rules:ktlint:0.4.12"

mordant-core = { module = "com.github.ajalt.mordant:mordant-core", version.ref = "mordant" }
mordant-jvmJna = { module = "com.github.ajalt.mordant:mordant-jvm-jna", version.ref = "mordant" }

jansi = "org.fusesource.jansi:jansi:2.4.1"
mordant = "com.github.ajalt.mordant:mordant:2.7.2"
clikt = "com.github.ajalt.clikt:clikt:4.4.0"
codepoints = "de.cketti.unicode:kotlin-codepoints:0.9.0"
finalizationHook = "com.jakewharton.finalization:finalization-hook:0.1.0"

junit4 = "junit:junit:4.13.2"
assertk = "com.willowtreeapps.assertk:assertk:0.28.1"
28 changes: 24 additions & 4 deletions mosaic-runtime/api/mosaic-runtime.api
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
public final class com/jakewharton/mosaic/BlockingKt {
public static final fun runMosaicBlocking (Lkotlin/jvm/functions/Function2;)V
}

public final class com/jakewharton/mosaic/MosaicKt {
public static final fun renderMosaic (Lkotlin/jvm/functions/Function2;)Ljava/lang/String;
public static final fun runMosaic (Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun runMosaicBlocking (Lkotlin/jvm/functions/Function2;)V
}

public final class com/jakewharton/mosaic/Terminal {
Expand Down Expand Up @@ -84,6 +81,29 @@ public abstract interface class com/jakewharton/mosaic/layout/IntrinsicMeasurabl
public abstract fun minIntrinsicWidth (I)I
}

public final class com/jakewharton/mosaic/layout/KeyEvent {
public static final field $stable I
public fun <init> (Ljava/lang/String;ZZZ)V
public synthetic fun <init> (Ljava/lang/String;ZZZILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun equals (Ljava/lang/Object;)Z
public final fun getAlt ()Z
public final fun getCtrl ()Z
public final fun getKey ()Ljava/lang/String;
public final fun getShift ()Z
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}

public abstract interface class com/jakewharton/mosaic/layout/KeyModifier : com/jakewharton/mosaic/modifier/Modifier$Element {
public abstract fun onKeyEvent (Lcom/jakewharton/mosaic/layout/KeyEvent;)Z
public abstract fun onPreKeyEvent (Lcom/jakewharton/mosaic/layout/KeyEvent;)Z
}

public final class com/jakewharton/mosaic/layout/KeyModifierKt {
public static final fun onKeyEvent (Lcom/jakewharton/mosaic/modifier/Modifier;Lkotlin/jvm/functions/Function1;)Lcom/jakewharton/mosaic/modifier/Modifier;
public static final fun onPreviewKeyEvent (Lcom/jakewharton/mosaic/modifier/Modifier;Lkotlin/jvm/functions/Function1;)Lcom/jakewharton/mosaic/modifier/Modifier;
}

public abstract interface class com/jakewharton/mosaic/layout/LayoutModifier : com/jakewharton/mosaic/modifier/Modifier$Element {
public fun maxIntrinsicHeight (Lcom/jakewharton/mosaic/layout/IntrinsicMeasurable;I)I
public fun maxIntrinsicWidth (Lcom/jakewharton/mosaic/layout/IntrinsicMeasurable;I)I
Expand Down
Loading

0 comments on commit f7f21ac

Please sign in to comment.