简单的格式化程序并尝试围绕代码创建自定义格式样式?

Simple formatter and trying to create custom formatting style around code?

我正在尝试创建自定义方法格式化程序或修改现有方法格式化程序以尝试不同样式的代码排列。

BISimpleFormatter 是 RBProgramNodeVisitor 的子类,所以我也打算使用类似的东西。

作为通用起点,我如何在每个代码节点前后插入我自己的字符(空格或制表符)?

创建 BISimpleFormatter 的子class。对于 BISimpleFormatter 中的每个 #visit<XYZ> 方法,在您的 class 中通过执行您想要的任何 pre-decoration 实现相同的方法,然后调用 super visit<XYZ> 并以您的 post-decoration.

例如,

MySpaciousFormatter 可以做一些类似

的事情
visitLiteralNode: aLiteralNode
  codeStream space.
  super visitLiteralNode: aLiteralNode.
  codeStream space

这样每次格式化程序要打印 LiteralNode 时都会在其周围放置空格。我相信你有更好的主意;我只是想给你一个简单的例子。