日記
今日書いたコード
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) }