CrownyDoc 워드프로세서 약점 보완 — 탭정지/텍스트상자/특수문자
개요
CrownyDoc Office Suite 벤치마크 약점 중 워드프로세서 3개 항목을 구현 완료.
- 약점 #11: 탭 정지(Tab Stop) — MEDIUM / medium effort
- 약점 #22: 텍스트 상자 — MEDIUM / medium effort
- 약점 #23: 특수문자/기호 삽입 — MEDIUM / small effort
무엇을 했는지
약점 #11 — 탭 정지(Tab Stop)
editor-toolbar.js 파일 끝에 다음을 추가:
CrownyToolbar.prototype.setTabStop(position, type)— 탭 정지 추가 (left/center/right/decimal)CrownyToolbar.prototype.removeTabStop(position)— 탭 정지 제거CrownyToolbar.prototype._showTabStopRuler()— 눈금자 UI (canvas 기반 10px 눈금, 클릭으로 추가/우클릭 제거)CrownyToolbar.prototype._refreshTabStopRuler()— 마커 아이콘 갱신 (⊢⊥⊣⊤)CrownyToolbar.prototype.handleTabKey(e)— 탭 키 → 다음 탭 정지까지 공백 삽입CrownyToolbar.prototype._bindTabKey()— 에디터 요소에 keydown 이벤트 등록- 레이아웃 패널에 "탭 눈금자" 버튼 + 위치 입력 + 유형 선택 + +탭/×탭 버튼 추가
약점 #22 — 텍스트 상자
CrownyToolbar.prototype.insertTextBox() — position:absolute 플로팅 div 삽입약점 #23 — 특수문자/기호 삽입
CrownyToolbar.prototype.showSpecialCharDialog() — 모달 다이얼로그관련 파일 경로
/Users/ef/CrownyDoc/한선씨/정적/editor-toolbar.js— 3개 기능 추가 (메인 구현)/Users/ef/CrownyDoc/한선씨/편집기/도구모음확장.한선— 한선씨 동반 파일 (신규)/Users/ef/CrownyDoc/benchmark-weaknesses.json— id 11/22/23 status → "done"
잔여 이슈
- 탭 정지 눈금자: 현재 커서 픽셀 위치 추정이 getBoundingClientRect 기반이라 정밀도 한계 있음. 폰트 크기·줄 길이 변화에 따라 미세 오차 발생 가능.
- 텍스트 상자: position:absolute 이므로 문서 흐름 밖 배치. 인쇄/PDF 출력 시 별도 처리 필요.
- 특수문자: 검색(입력으로 필터) 기능 미구현 — 향후 추가 고려.
- 한선씨 동반 파일 컴파일 검증은 Bash 권한 미승인으로 미실행. 수동 컴파일 필요.