fullscreen TUI: 화면 떨림 완화, 한글 입력 즉시 반영, 마우스·리사이즈 보강
fullscreen TUI 전용 업데이트입니다. Dirty-line paint와 커서 전용 이동으로 Windows Terminal 등에서의 상하 떨림을 줄이고, grapheme 단위 편집과 즉시 페인트로 한글 입력이 한 박자 늦게 보이던 체감을 완화했습니다. 마우스 SGR 파싱과 리사이즈 시 페인트 캐시 무효화도 보강했습니다.
Improvements (9)
- Dirty-line paint: 바뀐 줄만 다시 그려 전체 프레임 재출력을 줄입니다.
- 터미널 크기가 바뀔 때만 전체 재페인트합니다. 커서만 움직일 때는 줄 재그리기 없이 커서 위치만 이동합니다.
- 부분 업데이트 시 커서 hide/show 반복을 줄여 떨림과 IME 방해를 완화합니다.
- 스피너 주기를 90ms에서 120ms로 조정합니다.
- 마우스 any-motion(1003)은 사용하지 않아 호버로 전체 리페인트가 나지 않게 유지합니다.
- 커서·편집 단위를 grapheme cluster로 통일해 자모·음절·이모지 커서 위치를 안정화합니다.
- 입력·삭제·커서 이동 시 renderSoon 대신 renderNow로 즉시 반영합니다.
- 연속 입력 배치 처리(takePrintableRun)로 자모/음절이 한꺼번에 와도 insert와 paint를 한 번에 수행합니다.
- 불완전한 SGR 마우스 시퀀스를 일반 키로 오인하지 않도록 대기하고, 마우스 시퀀스를 일반 CSI 키 파서에서 분리합니다.
Fixes (2)
- Windows Terminal 등에서 매 프레임 전체 화면 재그리기(\x1b[H + full frame + clear)로 생기던 상하 떨림을 줄였습니다.
- 한글 입력이 한 박자 늦게 보이던 체감을 완화했습니다.
Patches (1)
- 리사이즈 시 paint 캐시를 무효화한 뒤 다시 그립니다.