Skip to content

Commit

Permalink
変換候補選択時にxキーで前候補に戻れるようにする (#101)
Browse files Browse the repository at this point in the history
  • Loading branch information
mtgto committed Jan 24, 2024
1 parent c90234e commit de888d8
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 1 deletion.
2 changes: 1 addition & 1 deletion macSKK/StateMachine.swift
Original file line number Diff line number Diff line change
Expand Up @@ -815,7 +815,7 @@ class StateMachine {
state.inputMethod = .normal
addFixedText(selecting.fixedText)
return true
case .backspace, .up:
case .backspace, .up, .printable("x"):
let diff: Int
if selecting.candidateIndex >= inlineCandidateCount && action.keyEvent == .backspace {
// 前ページの先頭
Expand Down
25 changes: 25 additions & 0 deletions macSKKTests/StateMachineTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1829,6 +1829,31 @@ final class StateMachineTests: XCTestCase {
wait(for: [expectation], timeout: 1.0)
}

func testHandleSelectingPrev() {
dictionary.setEntries(["": [Word(""), Word(""), Word(""), Word(""), Word("")]])

let expectation = XCTestExpectation()
stateMachine.inputMethodEvent.collect(7).sink { events in
XCTAssertEqual(events[0], .markedText(MarkedText([.markerCompose, .plain("t")])))
XCTAssertEqual(events[1], .markedText(MarkedText([.markerCompose, .plain("")])))
XCTAssertEqual(events[2], .markedText(MarkedText([.markerSelect, .emphasized("")])))
XCTAssertEqual(events[3], .markedText(MarkedText([.markerSelect, .emphasized("")])))
XCTAssertEqual(events[4], .markedText(MarkedText([.markerSelect, .emphasized("")])))
XCTAssertEqual(events[5], .markedText(MarkedText([.markerSelect, .emphasized("")])))
XCTAssertEqual(events[6], .markedText(MarkedText([.markerSelect, .emphasized("")])))
expectation.fulfill()
}.store(in: &cancellables)
XCTAssertTrue(stateMachine.handle(printableKeyEventAction(character: "t", withShift: true)))
XCTAssertTrue(stateMachine.handle(printableKeyEventAction(character: "o")))
XCTAssertTrue(stateMachine.handle(Action(keyEvent: .space, originalEvent: nil, cursorPosition: .zero)))
XCTAssertTrue(stateMachine.handle(Action(keyEvent: .space, originalEvent: nil, cursorPosition: .zero)))
XCTAssertTrue(stateMachine.handle(Action(keyEvent: .up, originalEvent: nil, cursorPosition: .zero)))
XCTAssertTrue(stateMachine.handle(Action(keyEvent: .space, originalEvent: nil, cursorPosition: .zero)))
XCTAssertTrue(stateMachine.handle(printableKeyEventAction(character: "x")))
XCTAssertTrue(stateMachine.handle(Action(keyEvent: .space, originalEvent: nil, cursorPosition: .zero)))
wait(for: [expectation], timeout: 1.0)
}

func testHandleSelectingCtrlY() {
dictionary.setEntries(["": [Word("")]])

Expand Down

0 comments on commit de888d8

Please sign in to comment.