Skip to content

Commit b96989c

Browse files
Add AnsiColor and String.ansiColor()
1 parent ef3c563 commit b96989c

File tree

5 files changed

+238
-2
lines changed

5 files changed

+238
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## [Unreleased]
44

55
### Added
6+
- `AnsiColor` and `String.ansiColor()`
67
- `String.remove`
78

89
### Changed

gradle/libs.versions.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,5 @@ kotest = "4.6.3"
44

55
[libraries]
66
jetbrains-kotlin-kotlinTest = { module = "org.jetbrains.kotlin:kotlin-test" }
7-
jetbrains-kotlin-kotlinTestJunit = { module = "org.jetbrains.kotlin:kotlin-test-junit" }
87
jetbrains-kotlinx-kotlinxCoroutinesCore = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
98
kotest-kotestAssertionsCore = { module = "io.kotest:kotest-assertions-core", version.ref = "kotest" }

kotlin-stdlib/api/kotlin-stdlib.api

Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,146 @@
1+
public abstract class com/javiersc/kotlin/stdlib/AnsiColor {
2+
public fun <init> ()V
3+
public abstract fun getValue ()Ljava/lang/String;
4+
public fun toString ()Ljava/lang/String;
5+
}
6+
7+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Background {
8+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Background;
9+
}
10+
11+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Background$Black : com/javiersc/kotlin/stdlib/AnsiColor {
12+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Background$Black;
13+
public fun getValue ()Ljava/lang/String;
14+
}
15+
16+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Background$Blue : com/javiersc/kotlin/stdlib/AnsiColor {
17+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Background$Blue;
18+
public fun getValue ()Ljava/lang/String;
19+
}
20+
21+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Background$Cyan : com/javiersc/kotlin/stdlib/AnsiColor {
22+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Background$Cyan;
23+
public fun getValue ()Ljava/lang/String;
24+
}
25+
26+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Background$Gray : com/javiersc/kotlin/stdlib/AnsiColor {
27+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Background$Gray;
28+
public fun getValue ()Ljava/lang/String;
29+
}
30+
31+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Background$Green : com/javiersc/kotlin/stdlib/AnsiColor {
32+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Background$Green;
33+
public fun getValue ()Ljava/lang/String;
34+
}
35+
36+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Background$Purple : com/javiersc/kotlin/stdlib/AnsiColor {
37+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Background$Purple;
38+
public fun getValue ()Ljava/lang/String;
39+
}
40+
41+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Background$Red : com/javiersc/kotlin/stdlib/AnsiColor {
42+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Background$Red;
43+
public fun getValue ()Ljava/lang/String;
44+
}
45+
46+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Background$Yellow : com/javiersc/kotlin/stdlib/AnsiColor {
47+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Background$Yellow;
48+
public fun getValue ()Ljava/lang/String;
49+
}
50+
51+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground {
52+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground;
53+
}
54+
55+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$Black : com/javiersc/kotlin/stdlib/AnsiColor {
56+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$Black;
57+
public fun getValue ()Ljava/lang/String;
58+
}
59+
60+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$Blue : com/javiersc/kotlin/stdlib/AnsiColor {
61+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$Blue;
62+
public fun getValue ()Ljava/lang/String;
63+
}
64+
65+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightBlack : com/javiersc/kotlin/stdlib/AnsiColor {
66+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightBlack;
67+
public fun getValue ()Ljava/lang/String;
68+
}
69+
70+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightBlue : com/javiersc/kotlin/stdlib/AnsiColor {
71+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightBlue;
72+
public fun getValue ()Ljava/lang/String;
73+
}
74+
75+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightCyan : com/javiersc/kotlin/stdlib/AnsiColor {
76+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightCyan;
77+
public fun getValue ()Ljava/lang/String;
78+
}
79+
80+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightGreen : com/javiersc/kotlin/stdlib/AnsiColor {
81+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightGreen;
82+
public fun getValue ()Ljava/lang/String;
83+
}
84+
85+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightPurple : com/javiersc/kotlin/stdlib/AnsiColor {
86+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightPurple;
87+
public fun getValue ()Ljava/lang/String;
88+
}
89+
90+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightRed : com/javiersc/kotlin/stdlib/AnsiColor {
91+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightRed;
92+
public fun getValue ()Ljava/lang/String;
93+
}
94+
95+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightWhite : com/javiersc/kotlin/stdlib/AnsiColor {
96+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightWhite;
97+
public fun getValue ()Ljava/lang/String;
98+
}
99+
100+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightYellow : com/javiersc/kotlin/stdlib/AnsiColor {
101+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$BrightYellow;
102+
public fun getValue ()Ljava/lang/String;
103+
}
104+
105+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$Cyan : com/javiersc/kotlin/stdlib/AnsiColor {
106+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$Cyan;
107+
public fun getValue ()Ljava/lang/String;
108+
}
109+
110+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$Green : com/javiersc/kotlin/stdlib/AnsiColor {
111+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$Green;
112+
public fun getValue ()Ljava/lang/String;
113+
}
114+
115+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$Purple : com/javiersc/kotlin/stdlib/AnsiColor {
116+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$Purple;
117+
public fun getValue ()Ljava/lang/String;
118+
}
119+
120+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$Red : com/javiersc/kotlin/stdlib/AnsiColor {
121+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$Red;
122+
public fun getValue ()Ljava/lang/String;
123+
}
124+
125+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$White : com/javiersc/kotlin/stdlib/AnsiColor {
126+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$White;
127+
public fun getValue ()Ljava/lang/String;
128+
}
129+
130+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Foreground$Yellow : com/javiersc/kotlin/stdlib/AnsiColor {
131+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Foreground$Yellow;
132+
public fun getValue ()Ljava/lang/String;
133+
}
134+
135+
public final class com/javiersc/kotlin/stdlib/AnsiColor$Reset : com/javiersc/kotlin/stdlib/AnsiColor {
136+
public static final field INSTANCE Lcom/javiersc/kotlin/stdlib/AnsiColor$Reset;
137+
public fun getValue ()Ljava/lang/String;
138+
}
139+
140+
public final class com/javiersc/kotlin/stdlib/AnsiColorsKt {
141+
public static final fun ansiColor (Ljava/lang/String;Lcom/javiersc/kotlin/stdlib/AnsiColor;)Ljava/lang/String;
142+
}
143+
1144
public final class com/javiersc/kotlin/stdlib/StringsKt {
2145
public static final fun remove (Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
3146
public static synthetic fun remove$default (Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Ljava/lang/String;

kotlin-stdlib/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ tasks.withType<DokkaTask> {
4343
file("${rootProject.projectDir}/samples/commonMain/kotlin")
4444
.walkTopDown()
4545
.filter(File::isFile)
46-
.map(File::getPath).toList()
46+
.map(File::getPath)
47+
.toList()
4748
println("HELLO")
4849
println(paths)
4950
samples.from(paths)
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package com.javiersc.kotlin.stdlib
2+
3+
public fun String.ansiColor(color: AnsiColor): String = "${color}$this${AnsiColor.Reset}"
4+
5+
public abstract class AnsiColor {
6+
7+
public abstract val value: String
8+
9+
override fun toString(): String = value
10+
11+
public object Reset : AnsiColor() {
12+
override val value: String = "\u001B[0m"
13+
}
14+
15+
public object Foreground {
16+
public object Black : AnsiColor() {
17+
override val value: String = "\u001B[30m"
18+
}
19+
public object Red : AnsiColor() {
20+
override val value: String = "\u001B[31m"
21+
}
22+
public object Green : AnsiColor() {
23+
override val value: String = "\u001B[32m"
24+
}
25+
public object Yellow : AnsiColor() {
26+
override val value: String = "\u001B[33m"
27+
}
28+
public object Blue : AnsiColor() {
29+
override val value: String = "\u001B[34m"
30+
}
31+
public object Purple : AnsiColor() {
32+
override val value: String = "\u001B[35m"
33+
}
34+
public object Cyan : AnsiColor() {
35+
override val value: String = "\u001B[36m"
36+
}
37+
public object White : AnsiColor() {
38+
override val value: String = "\u001B[37m"
39+
}
40+
public object BrightBlack : AnsiColor() {
41+
override val value: String = "\u001B[90m"
42+
}
43+
public object BrightRed : AnsiColor() {
44+
override val value: String = "\u001B[91m"
45+
}
46+
public object BrightGreen : AnsiColor() {
47+
override val value: String = "\u001B[92m"
48+
}
49+
public object BrightYellow : AnsiColor() {
50+
override val value: String = "\u001B[93m"
51+
}
52+
public object BrightBlue : AnsiColor() {
53+
override val value: String = "\u001B[94m"
54+
}
55+
public object BrightPurple : AnsiColor() {
56+
override val value: String = "\u001B[95m"
57+
}
58+
public object BrightCyan : AnsiColor() {
59+
override val value: String = "\u001B[96m"
60+
}
61+
public object BrightWhite : AnsiColor() {
62+
override val value: String = "\u001B[97m"
63+
}
64+
}
65+
66+
public object Background {
67+
public object Black : AnsiColor() {
68+
override val value: String = "\u001B[40m"
69+
}
70+
public object Red : AnsiColor() {
71+
override val value: String = "\u001B[41m"
72+
}
73+
public object Green : AnsiColor() {
74+
override val value: String = "\u001B[42m"
75+
}
76+
public object Yellow : AnsiColor() {
77+
override val value: String = "\u001b[43m"
78+
}
79+
public object Blue : AnsiColor() {
80+
override val value: String = "\u001B[44m"
81+
}
82+
public object Purple : AnsiColor() {
83+
override val value: String = "\u001B[45m"
84+
}
85+
public object Cyan : AnsiColor() {
86+
override val value: String = "\u001B[46m"
87+
}
88+
public object Gray : AnsiColor() {
89+
override val value: String = "\u001B[47m"
90+
}
91+
}
92+
}

0 commit comments

Comments
 (0)