Skip to content

Commit d9cc28d

Browse files
Add iOS target and apply ktfmt
1 parent c6d3281 commit d9cc28d

File tree

22 files changed

+262
-114
lines changed

22 files changed

+262
-114
lines changed

.editorconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ indent_style = space
33
insert_final_newline = true
44
max_line_length = 100
55
indent_size = 4
6-
ij_continuation_indent_size = 8
6+
ij_continuation_indent_size = 4
77
ij_java_names_count_to_use_import_on_demand = 9999
88
ij_kotlin_align_in_columns_case_branch = false
99
ij_kotlin_align_multiline_binary_operation = false

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
### Added
66

7+
- Add iOS target
8+
79
### Changed
810

911
- Rename `mokoki` subproject to `mokoki-core`

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ pomSmcDeveloperConnection=scm:git:[email protected]:JavierSegoviaCordoba/mokoki.git
2727
android.useAndroidX=true
2828
kotlin.code.style=official
2929
kotlin.js.compiler=both
30-
kotlin.mpp.enableGranularSourceSetsMetadata=true
31-
kotlin.native.enableDependencyPropagation=false
30+
#kotlin.mpp.enableGranularSourceSetsMetadata=true
31+
#kotlin.native.enableDependencyPropagation=false
3232
org.gradle.caching=true
3333
org.gradle.configureondemand=true
3434
org.gradle.jvmargs=-Xmx2048m

mokoki-core/build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ plugins {
44
`android-library`
55
`javiersc-kotlin-multiplatform`
66
`javiersc-publish-kotlin-multiplatform`
7+
`javiersc-code-formatter`
78
}
89

910
android {
@@ -21,6 +22,8 @@ kotlin {
2122

2223
jvm()
2324

25+
ios()
26+
2427
sourceSets {
2528
commonMain
2629

@@ -29,5 +32,7 @@ kotlin {
2932
}
3033

3134
named("jvmMain")
35+
36+
named("iosMain")
3237
}
3338
}

mokoki-core/src/androidMain/kotlin/internal/LoggerNames.kt

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,31 @@
11
package com.javiersc.mokoki.internal
22

3-
internal actual val fileName get() = "file ${stackTrace?.fileName ?: "Unknown"}"
3+
internal actual val fileName
4+
get() = "file ${stackTrace?.fileName ?: "Unknown"}"
45

5-
internal actual val className get() = "class ${stackTrace?.className?.split(".")?.lastOrNull() ?: "Unknown"}"
6+
internal actual val className
7+
get() = "class ${stackTrace?.className?.split(".")?.lastOrNull() ?: "Unknown"}"
68

7-
internal actual val methodName get() = "fun ${stackTrace?.methodName ?: "Unknown"}"
9+
internal actual val methodName
10+
get() = "fun ${stackTrace?.methodName ?: "Unknown"}"
811

9-
internal actual val lineNumber get() = "line ${stackTrace?.lineNumber ?: "Unknown"}"
12+
internal actual val lineNumber
13+
get() = "line ${stackTrace?.lineNumber ?: "Unknown"}"
1014

11-
internal actual val fileLink get() = "(${stackTrace?.fileName}:${stackTrace?.lineNumber})"
15+
internal actual val fileLink
16+
get() = "(${stackTrace?.fileName}:${stackTrace?.lineNumber})"
1217

1318
@Suppress("TooGenericExceptionCaught")
1419
private val stackTrace: StackTraceElement?
15-
get() = try {
16-
val trace = Thread.currentThread().stackTrace
17-
val index = trace.indexOfLast { traceElement ->
18-
Regex("^(com.javiersc.*mokoki.*Mokoki.*)$").matches(traceElement.className)
20+
get() =
21+
try {
22+
val trace = Thread.currentThread().stackTrace
23+
val index =
24+
trace.indexOfLast { traceElement ->
25+
Regex("^(Mokoki.kt)$").matches(traceElement.fileName ?: "") &&
26+
Regex("^(com.javiersc.mokoki.Mokoki)$").matches(traceElement.className)
27+
}
28+
trace[index + 1]
29+
} catch (throwable: Throwable) {
30+
null
1931
}
20-
trace[index + 1]
21-
} catch (throwable: Throwable) {
22-
null
23-
}

mokoki-core/src/commonMain/kotlin/Color.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ public enum class LoggerForegroundColor(public val value: String) {
1010
Purple("\u001B[35m"),
1111
Cyan("\u001B[36m"),
1212
White("\u001B[37m"),
13-
1413
BrightBlack("\u001B[90m"),
1514
BrightRed("\u001B[91m"),
1615
BrightGreen("\u001B[92m"),

mokoki-core/src/commonMain/kotlin/Mokoki.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ package com.javiersc.mokoki
44

55
import kotlin.native.concurrent.ThreadLocal
66

7-
// balok, sekac, mokoki, injira, hakisto,
8-
97
@ThreadLocal
108
public object Mokoki {
119

@@ -24,7 +22,7 @@ public object Mokoki {
2422
public fun v(tag: String = MokokiName, message: String): Unit = logger.v(tag, message)
2523

2624
public fun v(tag: String = MokokiName, throwable: Throwable): Unit =
27-
logger.v(tag, throwable.stackTraceToString())
25+
logger.v(tag, throwable.stackTraceToString())
2826

2927
public fun v(message: String): Unit = logger.v(MokokiName, message)
3028

@@ -33,7 +31,7 @@ public object Mokoki {
3331
public fun d(tag: String = MokokiName, message: String): Unit = logger.d(tag, message)
3432

3533
public fun d(tag: String = MokokiName, throwable: Throwable): Unit =
36-
logger.d(tag, throwable.stackTraceToString())
34+
logger.d(tag, throwable.stackTraceToString())
3735

3836
public fun d(message: String): Unit = logger.d(MokokiName, message)
3937

@@ -42,15 +40,15 @@ public object Mokoki {
4240
public fun i(tag: String = MokokiName, message: String): Unit = logger.i(tag, message)
4341

4442
public fun i(tag: String = MokokiName, throwable: Throwable): Unit =
45-
logger.i(tag, throwable.stackTraceToString())
43+
logger.i(tag, throwable.stackTraceToString())
4644

4745
public fun i(message: String): Unit = logger.i(MokokiName, message)
4846
public fun i(throwable: Throwable): Unit = logger.i(MokokiName, throwable.stackTraceToString())
4947

5048
public fun w(tag: String = MokokiName, message: String): Unit = logger.w(tag, message)
5149

5250
public fun w(tag: String = MokokiName, throwable: Throwable): Unit =
53-
logger.w(tag, throwable.stackTraceToString())
51+
logger.w(tag, throwable.stackTraceToString())
5452

5553
public fun w(message: String): Unit = logger.w(MokokiName, message)
5654

@@ -59,7 +57,7 @@ public object Mokoki {
5957
public fun e(tag: String = MokokiName, message: String): Unit = logger.e(tag, message)
6058

6159
public fun e(tag: String = MokokiName, throwable: Throwable): Unit =
62-
logger.e(tag, throwable.stackTraceToString())
60+
logger.e(tag, throwable.stackTraceToString())
6361

6462
public fun e(message: String): Unit = logger.e(MokokiName, message)
6563

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.javiersc.mokoki
2+
3+
import com.javiersc.mokoki.internal.Level
4+
import com.javiersc.mokoki.internal.buildMokokiMessage
5+
6+
public actual class MokokiLogger {
7+
8+
public actual var isEnabled: Boolean = true
9+
10+
public actual fun v(tag: String, message: String) {
11+
buildMokokiMessage(tag, message, Level.Verbose).forEach { println(it) }
12+
}
13+
14+
public actual fun d(tag: String, message: String) {
15+
TODO()
16+
}
17+
18+
public actual fun i(tag: String, message: String) {
19+
TODO()
20+
}
21+
22+
public actual fun w(tag: String, message: String) {
23+
TODO()
24+
}
25+
26+
public actual fun e(tag: String, message: String) {
27+
TODO()
28+
}
29+
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package com.javiersc.mokoki.internal
2+
3+
import platform.Foundation.NSThread
4+
5+
internal actual val fileName
6+
get() = "file ${stackTrace?.fileName ?: "Unknown"}"
7+
8+
internal actual val className
9+
get() = "class ${
10+
stackTrace?.className?.split(".")?.lastOrNull() ?: "Unknown"
11+
}"
12+
13+
internal actual val methodName
14+
get() = "fun ${stackTrace?.methodName ?: "Unknown"}"
15+
16+
internal actual val lineNumber
17+
get() = "line Unknown"
18+
19+
internal actual val fileLink
20+
get() = "(${stackTrace?.fileName}:${stackTrace?.lineNumber})"
21+
22+
private data class StackTraceElement(
23+
val fileName: String,
24+
val className: String?,
25+
val methodName: String?,
26+
val lineNumber: String?,
27+
)
28+
29+
@Suppress("TooGenericExceptionCaught")
30+
private val stackTrace: StackTraceElement?
31+
get() =
32+
try {
33+
val lines: List<String?> = NSThread.callStackSymbols.map { it?.toString() }
34+
val index = 6
35+
val fileName =
36+
if (lines[index]
37+
?.replaceAfter("#", "")
38+
?.replace("#", "")
39+
?.replaceBeforeLast(".", "")
40+
?.replace(".", "")
41+
?.first()
42+
?.isUpperCase() == true
43+
) {
44+
lines[index]
45+
?.replaceAfter("#", "")
46+
?.replace("#", "")
47+
?.replaceBeforeLast(".", "")
48+
?.replace(".", "")
49+
} else {
50+
lines[index + 1]
51+
?.replaceBefore("$", "")
52+
?.replaceFirst("$", "")
53+
?.replaceAfter("$", "")
54+
?.replace("$", "")
55+
}
56+
57+
val methodName =
58+
lines[index]
59+
?.replaceBefore("#", "")
60+
?.replace("#", "")
61+
?.replaceAfter("(", "")
62+
?.replace("(", "")
63+
64+
StackTraceElement(
65+
fileName = fileName?.let { "$it.kt" } ?: "Unknown",
66+
className = fileName ?: "Unknown",
67+
methodName = methodName,
68+
lineNumber = "1"
69+
)
70+
} catch (throwable: Throwable) {
71+
throw throwable
72+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.javiersc.example.test
2+
3+
import com.javiersc.mokoki.Mokoki
4+
import com.javiersc.mokoki.extensions.logV
5+
import kotlin.test.Test
6+
7+
class MokokiTry {
8+
9+
@Test
10+
fun hello() {
11+
hi()
12+
}
13+
14+
@Test
15+
fun hello2() {
16+
SomeObject.greeting()
17+
}
18+
}
19+
20+
fun hi() {
21+
Mokoki.v("Hello")
22+
}
23+
24+
object SomeObject {
25+
fun greeting() {
26+
logV("Hello")
27+
}
28+
}

0 commit comments

Comments
 (0)