이러한 문제 해결을 위해 Ruby 3.2부터 번들링된 에러 톨러런트 파서인 Prism으로의 전환이 제안됩니다. Prism의 AST(추상 구문 트리) 활용은 기능 개선에 크게 기여합니다:
* 구문 강조: Prism AST 기반 하이브리드 방식으로 복잡한 상황에서도 정확한 색상 강조를 구현합니다.
* 중첩 분석: Prism AST를 통해 코드 블록 등의 중첩 상태를 정확히 파악하여 자동 들여쓰기 및 프롬프트 변화 로직의 정확도를 높여 IRB 기존 한계를 극복합니다.
* 코드 종료 판단: Prism의 parse_success?
및 에러 정보를 활용해 구문 유효성을 정확히 판단, 사용자 의도에 맞는 실행/대기 결정을 내립니다.
* 자동 완성: reple-type-completer
와 연계하여 Prism으로 커서 위치 노드 정보를 파악하고, 런타임 타입 정보를 활용해 정교하고 풍부한 자동 완성을 제공하며, 복잡한 타입 추론도 가능해집니다.
Prism으로의 전환은 IRB뿐 아니라 Rog 등 다른 Ruby 라이브러리에서도 진행 중이며, Ruby 생태계 전반의 개발 도구 품질 향상에 기여할 것입니다.