포매터 (oxfmt)
현재 Prettier와 Biome Formatter를 Oxc로 이식해, 고성능·Prettier 호환 포매터를 만들고 있습니다.
아키텍처 개요
Oxc 포매터는 Prettier와 같은 핵심 개념을 따르되 성능 최적화가 크게 들어갑니다.
- 문서 모델: Prettier와 Biome의 문서 IR(중간 표현) 사용
- 예쁜 인쇄: Wadler의 pretty printing 알고리즘 구현
- AST 통합: Oxc의 빠른 파서를 활용해 성능 최적화
성능 고려 사항
최적화 전략
- 메모리 아레나: 범프 할당기에 AST 할당
- 문자열 인터닝: 공통 문자열 재사용
- 지연 평가: 비용 큰 계산 연기
현재 과제
기술적 과제
- 주석 처리: 주석 위치·포맷 유지
- JavaScript 특이 사례: 문법 엣지 케이스
- 성능 vs 호환: Prettier 출력과의 정확한 일치와 속도 균형
- 메모리 관리: 대용량 파일 효율 처리
미구현·진행 중 기능
- 플러그인 시스템 호환
- 설정 파일 지원
- 에디터 연동
- CLI 도구
- Language Server Protocol