我正在尝试创建自定义或修改现有的方法格式化程序,以尝试不同类型的代码安排。
BISimpleFormatter是RBProgramNodeVisitor的子类,所以我打算也使用类似的东西。
作为一个通用的起点,如何在每个代码节点之前和之后插入我自己的字符(空格或制表符)?
答案 0 :(得分:2)
创建BISimpleFormatter
的子类。对于您班级中#visit<XYZ>
工具中的每个BISimpleFormatter
方法,您可以通过执行任何预装饰来使用相同的方法,然后调用super visit<XYZ>
并以装饰后结束。
例如,
MySpaciousFormatter
可以在
visitLiteralNode: aLiteralNode
codeStream space.
super visitLiteralNode: aLiteralNode.
codeStream space
这样每次格式化程序要打印LiteralNode
时,它都会在其周围放置空格。我相信你有更好的想法;我只想给你一个简单的例子。