cketti / kotlin-codepoints Goto Github PK
View Code? Open in Web Editor NEWKotlin Multiplatform (KMP) library that adds basic support for Unicode code points
License: MIT License
Kotlin Multiplatform (KMP) library that adds basic support for Unicode code points
License: MIT License
Equivalent of Character.toChars
.
Short of using an import alias I wasn't able to make the following work in a KMP project that has the JVM as one of its targets:
import de.cketti.codepoints.deluxe.CodePoint
import de.cketti.codepoints.deluxe.codePointAt
fun main() {
val stringBuilder = StringBuilder().append("a")
// Type mismatch: inferred type is Int but CodePoint was expected
val codePoint: CodePoint = stringBuilder.codePointAt(0)
}
It looked fine in the IDE, but failed when compiling the JVM project.
Explicitly adding a StringBuilder
extension function with the @kotlin.internal.HidesMembers
annotation din't work either.
@file:Suppress(
"INVISIBLE_MEMBER",
"INVISIBLE_REFERENCE",
"EXTENSION_SHADOWED_BY_MEMBER",
"KotlinRedundantDiagnosticSuppress",
)
package separate.package.to.avoid.name.conflicts
import de.cketti.codepoints.deluxe.CodePoint
import de.cketti.codepoints.deluxe.codePointAt
@kotlin.internal.HidesMembers
fun StringBuilder.codePointAt(index: Int): CodePoint {
return (this as CharSequence).codePointAt(index)
}
Changing the names of the extension functions would avoid this problem. The question is what names to chose.
Previously it returned 0, now it throws. Before, at least on JVM, it was going into the String
impl. In 0.6.0 the impl is now owned by the library.
Equivalent of StringBuilder.appendCodePoint
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.