Xtext条件格式化

时间:2016-03-09 23:20:18

标签: java xtext

我的语法看起来像这样

NAME value

我使用经过处理的xtend文件进行格式化

    /*
    * generated by Xtext
     */
    class MyFormatter extends AbstractDeclarativeFormatter {

    @Inject extension MyGrammarAccess g
    override protected void configureFormatting(FormattingConfig c) {

        c.setAutoLinewrap(700)

        c.setLinewrap().around(g.getSpecificRule)

        c.setSpace("  ").between(n.getNamerule, n.getValueRule)
    }
}

我想根据姓名规则的长度做一些格式化, 所以我可以把值放在一个特定的列上,所以我不想在两个空格中放置一个可变数量的空格,具体取决于名称的长度。

有人可以指导我实现这一目标。

1 个答案:

答案 0 :(得分:1)

您应该使用新的格式化API,允许您根据实际的语义和节点模型进行格式化:https://eclipse.org/Xtext/documentation/303_runtime_concepts.html#formatting。旧的格式化API仅基于语法结构。