Repository navigation
fix(form_fit): let closing punctuation after a space start a line - #499
Conversation
airmang
left a comment
There was a problem hiding this comment.
검토 완료. 닫는 문장부호가 앞 글자에 붙은 경우의 기존 금칙과 공백 뒤 줄 시작 예외, break opportunity 및 opening punctuation 조건을 확인했습니다. 정확한 head에서 관련 FormFit/쪽 수 추정 테스트 132개가 통과했고, 전체 CI 및 실제 Python 3.12 로그(6868 passed, 18 skipped, 1 xfailed; coverage 90.00%; Ruff·mypy·Pyright·공개 게이트 통과)를 확인했습니다. 검토 범위에서 추가 결함은 발견하지 못했습니다. 다만 #498 병합 후 최신 main 467d1d2c71cc069832a78ea563f58d1b96da7d6e와 CHANGELOG.md 내용 충돌을 git merge-tree로 확인해 병합을 보류합니다. 두 변경 기록을 보존하여 충돌을 해결한 새 head에서 검사와 통합 결과를 재검증해야 합니다.
FormFit and the page estimate kept every closing punctuation mark (`!`, `?`, `)`, `%`, `」`, `·` and the others that never start a line) off the start of a line, and so moved the word before a space-separated mark down with it. Hancom Office starts a line with such a mark when a space comes before it, as it already did with the ellipsis; a mark attached to the character before it still moves down with that character. Two Hancom-saved fixtures hold paragraphs breaking so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1d60f95 to
511961e
Compare
airmang
left a comment
There was a problem hiding this comment.
Reviewed exact head 511961e against main 467d1d2. The rebased change preserves the opening-punctuation guard and permits closing punctuation after hanging spaces; inspected both the width-search path and Hancom line-start fixtures, including cache/no-cache agreement. The new head differs from the previously reviewed implementation only in its rebase/CHANGELOG placement. Locally, 136 related FormFit/layout tests passed. Verified successful CI workflow head SHA and read its test/lint/type/hygiene log: 6,872 passed, 18 skipped, 1 xfailed; all 13 PR checks pass. No unresolved findings; ready for a SHA-guarded squash merge. COMMENT used because this authenticated account owns the PR.
Summary
!,?,),%,」,·and the other characters in_NO_LINE_START). So when such a mark stood after a space, they moved the word before the space down with it, and the line held one word less than Hancom Office puts on it.Test plan
pages_closing_bracket_after_a_space_starts_a_line,pages_percent_after_a_space_starts_a_line): every paragraph's line starts match the saved line layout, and the page estimate without caches matches. These tests fail before the fix.🤖 Generated with Claude Code