Skip to content

포매터 (oxfmt)

현재 Prettier와 Biome Formatter를 Oxc로 이식해, 고성능·Prettier 호환 포매터를 만들고 있습니다.

아키텍처 개요

Oxc 포매터는 Prettier와 같은 핵심 개념을 따르되 성능 최적화가 크게 들어갑니다.

  • 문서 모델: Prettier와 Biome의 문서 IR(중간 표현) 사용
  • 예쁜 인쇄: Wadler의 pretty printing 알고리즘 구현
  • AST 통합: Oxc의 빠른 파서를 활용해 성능 최적화

성능 고려 사항

최적화 전략

  • 메모리 아레나: 범프 할당기에 AST 할당
  • 문자열 인터닝: 공통 문자열 재사용
  • 지연 평가: 비용 큰 계산 연기

현재 과제

기술적 과제

  1. 주석 처리: 주석 위치·포맷 유지
  2. JavaScript 특이 사례: 문법 엣지 케이스
  3. 성능 vs 호환: Prettier 출력과의 정확한 일치와 속도 균형
  4. 메모리 관리: 대용량 파일 효율 처리

미구현·진행 중 기능

  • 플러그인 시스템 호환
  • 설정 파일 지원
  • 에디터 연동
  • CLI 도구
  • Language Server Protocol