2017-01-14 3 views
1

커스텀을 만들거나 기존의 메서드 포맷터를 수정하여 다양한 스타일의 코드 정렬을 실험하려고합니다.간단한 포맷터와 코드 주위에 사용자 정의 포맷팅 스타일을 만들려고합니까?

BISimpleFormatter는 RBProgramNodeVisitor의 하위 클래스이므로 이와 비슷한 것을 사용할 계획입니다.

일반적인 시작점으로 각 코드 노드 앞뒤에 내 자신의 문자 (공백 또는 탭)를 삽입하려면 어떻게해야합니까?

답변

2

BISimpleFormatter의 하위 클래스를 만듭니다. BISimpleFormatter의 모든 #visit<XYZ> 메소드에 대해 원하는 사전 장식을 수행하여 동일한 방법을 구현 한 다음 super visit<XYZ>을 호출하고 사후 장식으로 끝냅니다. 예를 들어

,

MySpaciousFormatter이 방법을

visitLiteralNode: aLiteralNode 
    codeStream space. 
    super visitLiteralNode: aLiteralNode. 
    codeStream space 

의 라인에 포맷터가 LiteralNode은 그것을 주위에 공백을 넣어 인쇄하는 것입니다 때마다 뭔가를 할 수 있습니다. 나는 당신이 훨씬 더 좋은 아이디어를 가지고 있다고 확신한다. 나는 그저 간단한 예를 들어주고 싶었습니다.