Skip to content

feat: 표 행·열 명령과 단축키 표 공개 — 상류 PR #48·#49 백포트 - #54

Merged
centwon merged 1 commit into
mainfrom
feat/upstream-48-49-backport
Sep 23, 2026
Merged

centwon merged 1 commit into
mainfrom
feat/upstream-48-49-backport

Conversation

@centwon

@centwon centwon commented Sep 23, 2026

Copy link
Copy Markdown
Owner

상류 AvaloniaRichEditor PR #48(표 행·열 공개 API)·#49(단축키 표 공개)를 옮긴다. 이것으로 상류 PR #53까지 대조가 끝난다.

공개 API 추가

  • RichEditor.InsertTableRow·DeleteTableRow·InsertTableColumn·DeleteTableColumn(표·인덱스 지정)
  • InsertRowAbove·InsertRowBelow·DeleteRow·InsertColumnLeft·InsertColumnRight·DeleteColumn(캐럿 기준)
  • RichEditorShortcuts(All·Display), RichEditorShortcutId, RichEditorShortcut — 내부 ShortcutId/ShortcutSpec 이름 변경

동작

  • 호출 하나 = 되돌리기 한 단계, 바뀐 게 있는지 bool로 반환. 읽기 전용·범위 밖 인덱스·다른 문서의 표·마지막 행/열은 false이고 체크포인트도 쌓지 않는다.
  • "아래/오른쪽"은 메뉴와 같은 RowBelowIndex/ColumnRightIndex(병합 영역 뒤).
  • 문서 소속 판정은 AllParagraphs + FindCell. 부모 사슬은 떼어 낸 표도 "안"으로 보기 때문(라운드34 교훈, 테스트로 고정).
  • All은 읽기 전용 뷰, TryMatch는 내부.

상류와 다른 점

  • Gesture(id) 없음 — Avalonia KeyGesture 전용이고, WinUI 메뉴는 힌트를 문자열로 받는다.
  • enum 순서는 포트 것 유지(숫자 값이 바뀌지 않게).

검증

  • 테스트 887 → 910(TableStructureApiTests 17, PublicShortcutTableTests 6). 빌드 경고 0(PublicAPI 분석기 켜짐).
  • 반증 6종 전부 의도한 테스트만 빨강: 다른 문서 검사·범위 검사·읽기 전용 검사 제거, 아래=r+1, 키 핸들러 Bold 분기 제거, All이 배열 그대로.
  • ⚠️ ControlFeatureFlagTests.AllowRemoteImagesOnPaste_DecidesWhetherPastingHtmlGoesToTheNetwork가 전체 실행에서 가끔 실패(이 브랜치 2/3, main에서도 1/3) — 실제 OS 클립보드에 HTML 형식이 안 실려 평문으로 떨어진다. 기존 불안정이고 이번 변경과 무관.

🤖 Generated with Claude Code

행/열 편집은 우클릭 메뉴로만, 단축키는 편집기 안에서만 읽혔다. 자체 툴바를 만드는 호스트는
TableBlock을 직접 고치거나(되돌리기·부모 배선·무효화 누락) "Ctrl+B"를 다시 적어야 했다.

- 표·인덱스 지정 4종(InsertTableRow 등) + 캐럿 기준 6종(InsertRowAbove 등). 호출 하나 = 되돌리기
  한 단계, bool 반환. 읽기 전용·범위 밖·다른 문서의 표·마지막 행/열은 false이고 체크포인트도 없다.
  "아래/오른쪽"은 메뉴와 같은 RowBelowIndex/ColumnRightIndex(병합 뒤). 문서 소속 판정은
  AllParagraphs + FindCell — 부모 사슬은 떼어 낸 표도 "안"으로 본다(테스트로 고정).
- RichEditorShortcuts·RichEditorShortcutId·RichEditorShortcut 공개. All은 읽기 전용 뷰, TryMatch는 내부.
  enum 순서는 포트 것 유지, Gesture(id)는 Avalonia 전용이라 뺐다.

테스트 887 → 910(TableStructureApiTests 17, PublicShortcutTableTests 6), 전부 통과.
반증 6종 전부 의도한 테스트만 빨강: 다른 문서 검사·범위 검사·읽기 전용 검사 제거, 아래=r+1,
키 핸들러 Bold 분기 제거, All이 배열 그대로.
ControlFeatureFlagTests의 HTML 붙여넣기 테스트가 전체 실행 2/3에서 실패 — 실제 OS 클립보드에
HTML 형식이 안 실려 평문으로 떨어짐. main에서도 1/3 재현(기존 불안정, 이번 변경과 무관), 단독 3회 통과.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@centwon
centwon merged commit 3284a23 into main Sep 23, 2026
2 checks passed
@centwon
centwon deleted the feat/upstream-48-49-backport branch September 23, 2026 22:36
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