Skip to content

디버그 오버레이 내보내기 글자 배치 오류 — extension host WASM 스텁 문제 #136

@edwardkim

Description

@edwardkim

문제

HWP: 디버그 오버레이 보기 커맨드 실행 시 표 안의 글자 배치가 깨짐.

원인

현재 cmdDebugOverlay는 extension host(Node.js)에서 WASM을 직접 로드하여 렌더링함.
Node.js 환경에는 Canvas API가 없어 measureTextWidthtext.length * 8 스텁으로 처리하므로,
한글 등 가변폭 글자의 폭 계산이 부정확하여 표 안 글자 배치가 틀어짐.

뷰어(webview)에서는 Canvas measureText()를 실제 호출하므로 정상 렌더링됨.

개선 방향

extension host에서 직접 렌더링하는 대신, 이미 열린 HWP 뷰어 webview에 메시지를 전송하여 webview에서 렌더링 후 결과 SVG를 반환받는 방식으로 전환.

  1. extension host → webview: { type: "exportDebugOverlay" } 메시지 전송
  2. webview: set_debug_overlay(true) + renderPageSvg() × N 실행 후 SVG 배열 반환
  3. extension host: SVG 수신 → HTML 조합 → /tmp 저장 → vscode.open

기대 효과

  • 글자 배치 정확도: 뷰어와 동일
  • measureTextWidth 스텁 의존 제거

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions