mirror of
https://github.com/curioustorvald/Terrarum-sans-bitmap.git
synced 2026-06-12 00:44:05 +09:00
space is 5px again but for MovableType only
This commit is contained in:
@@ -985,7 +985,7 @@ class MovableType(
|
|||||||
private val controlIns = listOf(0xFFFA2, 0xFFFA3, 0xFFFC1, 0xFFFC2).toSortedSet()
|
private val controlIns = listOf(0xFFFA2, 0xFFFA3, 0xFFFC1, 0xFFFC2).toSortedSet()
|
||||||
private val controlOuts = listOf(0xFFFBF, 0xFFFC0).toSortedSet()
|
private val controlOuts = listOf(0xFFFBF, 0xFFFC0).toSortedSet()
|
||||||
private val whitespaceGlues = hashMapOf(
|
private val whitespaceGlues = hashMapOf(
|
||||||
0x20 to 4,
|
0x20 to 5, // this is deliberately 1 px wider!
|
||||||
0x2009 to 2,
|
0x2009 to 2,
|
||||||
0x200A to 1,
|
0x200A to 1,
|
||||||
ZWSP to 0,
|
ZWSP to 0,
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ import java.util.zip.GZIPInputStream
|
|||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
import kotlin.math.sign
|
import kotlin.math.sign
|
||||||
|
|
||||||
class CodepointSequence {
|
class CodepointSequence: MutableList<CodePoint> {
|
||||||
private val data = ArrayList<CodePoint>()
|
private val data = ArrayList<CodePoint>()
|
||||||
|
|
||||||
constructor()
|
constructor()
|
||||||
@@ -59,7 +59,7 @@ class CodepointSequence {
|
|||||||
data.addAll(chars)
|
data.addAll(chars)
|
||||||
}
|
}
|
||||||
|
|
||||||
val size; get() = data.size
|
override val size; get() = data.size
|
||||||
val indices; get() = data.indices
|
val indices; get() = data.indices
|
||||||
val lastIndex; get() = data.lastIndex
|
val lastIndex; get() = data.lastIndex
|
||||||
|
|
||||||
@@ -76,25 +76,40 @@ class CodepointSequence {
|
|||||||
fun last(predicate: (CodePoint) -> Boolean) = data.last(predicate)
|
fun last(predicate: (CodePoint) -> Boolean) = data.last(predicate)
|
||||||
fun lastOrNull(predicate: (CodePoint) -> Boolean) = data.lastOrNull(predicate)
|
fun lastOrNull(predicate: (CodePoint) -> Boolean) = data.lastOrNull(predicate)
|
||||||
fun filter(predicate: (CodePoint) -> Boolean) = data.filter(predicate)
|
fun filter(predicate: (CodePoint) -> Boolean) = data.filter(predicate)
|
||||||
fun add(index: Int, char: CodePoint) = data.add(index, char)
|
override fun add(index: Int, char: CodePoint) = data.add(index, char)
|
||||||
operator fun set(index: Int, char: CodePoint) {
|
override operator fun set(index: Int, char: CodePoint) = data.set(index, char)
|
||||||
data[index] = char
|
override fun add(char: CodePoint) = data.add(char)
|
||||||
}
|
override fun addAll(chars: Collection<CodePoint>) = data.addAll(chars)
|
||||||
fun add(char: CodePoint) = data.add(char)
|
|
||||||
fun addAll(chars: Collection<CodePoint>) = data.addAll(chars)
|
|
||||||
fun addAll(cs: CodepointSequence) = data.addAll(cs.data)
|
fun addAll(cs: CodepointSequence) = data.addAll(cs.data)
|
||||||
fun removeAt(index: Int) = data.removeAt(index)
|
override fun removeAt(index: Int) = data.removeAt(index)
|
||||||
fun remove(char: CodePoint) = data.remove(char)
|
override fun retainAll(elements: Collection<CodePoint>) = data.retainAll(elements)
|
||||||
operator fun get(index: Int) = data[index]
|
override fun remove(char: CodePoint) = data.remove(char)
|
||||||
|
override operator fun get(index: Int) = data[index]
|
||||||
|
override fun indexOf(element: CodePoint) = data.indexOf(element)
|
||||||
fun getOrNull(index: Int) = data.getOrNull(index)
|
fun getOrNull(index: Int) = data.getOrNull(index)
|
||||||
fun getOrElse(index: Int, action: (Int) -> CodePoint) = data.getOrElse(index, action)
|
fun getOrElse(index: Int, action: (Int) -> CodePoint) = data.getOrElse(index, action)
|
||||||
fun isEmpty() = data.isEmpty()
|
override fun isEmpty() = data.isEmpty()
|
||||||
|
override fun iterator() = data.iterator()
|
||||||
|
override fun listIterator() = data.listIterator()
|
||||||
|
override fun listIterator(index: Int) = data.listIterator()
|
||||||
|
override fun lastIndexOf(element: CodePoint) = data.lastIndexOf(element)
|
||||||
fun isNotEmpty() = data.isNotEmpty()
|
fun isNotEmpty() = data.isNotEmpty()
|
||||||
fun count(predicate: (CodePoint) -> Boolean) = data.count(predicate)
|
fun count(predicate: (CodePoint) -> Boolean) = data.count(predicate)
|
||||||
fun addAll(index: Int, elements: Collection<CodePoint>) = data.addAll(index, elements)
|
fun all(predicate: (CodePoint) -> Boolean) = data.all(predicate)
|
||||||
|
fun any(predicate: (CodePoint) -> Boolean) = data.any(predicate)
|
||||||
|
fun none(predicate: (CodePoint) -> Boolean) = data.none(predicate)
|
||||||
|
override fun contains(char: CodePoint) = data.contains(char)
|
||||||
|
fun removeIf(predicate: (CodePoint) -> Boolean) = data.removeIf(predicate)
|
||||||
|
fun spliterator() = data.spliterator()
|
||||||
|
fun stream() = data.stream()
|
||||||
|
fun parallelStream() = data.parallelStream()
|
||||||
|
override fun removeAll(elements: Collection<CodePoint>) = data.removeAll(elements)
|
||||||
|
override fun addAll(index: Int, elements: Collection<CodePoint>) = data.addAll(index, elements)
|
||||||
fun addAll(index: Int, elements: CodepointSequence) = data.addAll(index, elements.data)
|
fun addAll(index: Int, elements: CodepointSequence) = data.addAll(index, elements.data)
|
||||||
fun subList(fromIndex: Int, toIndex: Int) = data.subList(fromIndex, toIndex)
|
override fun subList(fromIndex: Int, toIndex: Int) = data.subList(fromIndex, toIndex)
|
||||||
fun slice(indices: IntRange) = data.slice(indices)
|
fun slice(indices: IntRange) = data.slice(indices)
|
||||||
|
override fun clear() = data.clear()
|
||||||
|
override fun containsAll(elements: Collection<CodePoint>) = data.containsAll(elements)
|
||||||
|
|
||||||
fun penultimate() = data[data.size - 2]
|
fun penultimate() = data[data.size - 2]
|
||||||
fun penultimateOrNull() = data.getOrNull(data.size - 2)
|
fun penultimateOrNull() = data.getOrNull(data.size - 2)
|
||||||
|
|||||||
Reference in New Issue
Block a user