🐕 q-compact-shell-color
q-compact-shell-color is a Kotlin library that can color your console output.
- Just copy and paste 🟦 Single-File version QShColor.kt into your project.
- Or you can use 🟩 Split-File Jar version. See Maven Dependency Section.
- Feel free to fork or copy to your own codebase.
Example
output
code
Full Source QShColorExample.kt
fun main() { var txt = "c".yellow + "o".blue + "l".red + "o".magenta + "u".green + "r".cyan + "f".yellow + "u".blue + "l".red println(txt) txt = "you can set background".qColor(fg = QShColor.RED, bg = QShColor.BLUE) println(txt) txt = """val color = "you can use regex to color targeted text"""".qColorTarget( ptn = """val(?!\S)""".toRegex(), color = QShColor.MAGENTA ).qColorTarget( ptn = """".*?"""".toRegex(), color = QShColor.GREEN ) println(txt) }
Please see QShColorTest.kt for more code examples. Single-File version src-test-single/QShColorTest.kt is a self-contained source code that includes a runnable main function. You can easily copy and paste it into your codebase.
🟦 Single-File version Dependency
If you copy & paste QShColor.kt.
Refer to build.gradle.kts to directly check project settings.
dependencies { implementation("org.jetbrains.kotlin:kotlin-reflect:1.8.20") testImplementation(kotlin("test")) }
🟩 Split-File Jar version Maven Dependency
If you prefer a jar library. Add jitpack.io repository to the build script.
build.gradle ( Groovy )
repositories { ... maven { url 'https://jitpack.io' } } dependencies { implementation 'com.github.nyabkun:q-compact-shell-color:v2023-05-21' }
build.gradle.kts ( Kotlin )
repositories { ... maven("https://jitpack.io") } dependencies { implementation("com.github.nyabkun:q-compact-shell-color:v2023-05-21") }
pom.xml
<repositories> ... <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository> </repositories> <dependencies> ... <dependency> <groupId>com.github.nyabkun</groupId> <artifactId>q-compact-shell-color</artifactId> <version>v2023-05-21</version> </dependency> </dependencies>
How did I create this library
I created this library by developing a program within my own codebase that automatically resolves dependencies at the method or property level, extracts necessary code elements, and generates a compact, self-contained, single-file library.
The program uses PSI to resolve dependencies for function calls and references to classes.
Although my original repository is currently disorganized, I have been gradually extracting and publishing small libraries. I also plan to prepare the original repository for publication in the future