ぜのぜ

しりとりしようぜのぜのぜのぜ

642日目

日記

今日書いたコード

add EditorAction.delete · Gurrium/SwiftKilo@82aabd8 · GitHub

感想

自分で書いておいてこれ動くんだとなった。多分ステートマシンにしたほうがいい。いつかやる。

final class KeyProcessor {
    private var state = [UnicodeScalar]()

    func process(_ scalar: UnicodeScalar) -> EditorAction? {
        switch state {
        case Array("\u{1b}[3~".unicodeScalars):
            action = .delete
        }

        return action
    }
}
func test_delete() {
    "\u{1b}[3".unicodeScalars.forEach { XCTAssertNil(keyProcessor.process($0)) }
    XCTAssertEqual(keyProcessor.process(.init("~")), .delete)
}