Skip to content

feat(layout): write the tab widths of paragraphs whose runs differ in face - #497

Merged
airmang merged 1 commit into
mainfrom
feat/layout-line-caches-mixed-tabs
Oct 17, 2026
Merged

airmang merged 1 commit into
mainfrom
feat/layout-line-caches-mixed-tabs

Conversation

@airmang

@airmang airmang commented Oct 16, 2026

Copy link
Copy Markdown
Owner

Stacked on #496.

Summary

  • A paragraph whose runs differ in face, 장평 or 자간 now keeps its tabs when write_line_caches writes its cache.
  • The text before a tab takes each character's own run's advance, as the line breaking does, and the tab gets the width to the next default stop.
  • A tab among characters of several sizes still leaves the paragraph for Hancom.
  • A Hancom-saved fixture holds tabs among runs of several faces, and a new test checks their widths against Hancom's.

Test plan

  • The new test fails before the change and passes after it
  • Lint, format, type checks and the other repository gates
  • Full test suite: no new failures

🤖 Generated with Claude Code

@airmang airmang left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

748bf5846e06badb59b00db4bcf30c22564d949b에서 광고된 선행 브랜치 대비 diff와 혼합 글꼴에서 탭 앞뒤의 실제 run별 폭과 강제 줄 바꿈 뒤 탭 위치 계산를 검토했습니다. 별도 체크아웃의 줄 캐시 회귀 테스트 21개가 통과했고, 정확한 head의 모든 CI 검사 및 Python 3.12 로그(6868 passed, 18 skipped, 1 xfailed; coverage 기준, Ruff·mypy·Pyright·공개 게이트 통과)를 확인했습니다. 이 PR 고유 변경에서 추가로 재현한 결함은 없습니다. 다만 이 브랜치는 미병합 #491에 연쇄 의존하며, 그 PR의 캐시 작성 후 문단 위치 변경 결함이 여전히 재현되고 리뷰 스레드도 미해결입니다. 선행 #495에서도 다중 컨트롤 textpos 계산 결함이 확인됐습니다. 선행 문제가 수정·병합된 뒤 최신 base/head와 통합 결과를 재검증할 때까지 보류합니다.

@airmang
airmang force-pushed the feat/layout-line-caches-mixed-looks branch from 9de71f9 to d7f1639 Compare October 17, 2026 11:38
@airmang
airmang force-pushed the feat/layout-line-caches-mixed-tabs branch from 748bf58 to 4d42d66 Compare October 17, 2026 11:38
@airmang
airmang force-pushed the feat/layout-line-caches-mixed-looks branch from d7f1639 to b4197c4 Compare October 17, 2026 11:40
… face

A paragraph whose runs differ in face, 장평 or 자간 now keeps its tabs
when write_line_caches writes its cache: the text before a tab takes
each character's own run's advance, as the line breaking does, and the
tab gets the width to the next default stop. A tab among characters of
several sizes still leaves the paragraph for Hancom.

A Hancom-saved fixture holds tabs among runs of several faces.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@airmang
airmang force-pushed the feat/layout-line-caches-mixed-tabs branch from 4d42d66 to 7b3596c Compare October 17, 2026 11:40
@airmang
airmang changed the base branch from feat/layout-line-caches-mixed-looks to main October 17, 2026 11:40
@airmang
airmang merged commit eb19ba3 into main Oct 17, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant