简体   繁体   English

XTend中的递归缩进

[英]Recursive indentation in XTend

Is it possible to control the indentation of recursive called methods in xtend? 是否可以控制xtend中的递归调用方法的缩进? I have the following case: 我有以下情况:

def generateField(Field field)
    '''
    field «field.name» {
        description '«field.description»'
        label '«field.label»'
        «FOR alias : field.aliases BEFORE ' aliases {\n' SEPARATOR ',' AFTER '\n}'»
            «var f = alias.value as Field»«generateField(f)»
        «ENDFOR»
    }
    '''

The generated content looks like this: 生成的内容如下所示:

    field name {
        description 'field Description'
        label 'fD'
        aliases {
            field nameA {
            description 'field Description'
            label 'fD'
        },
        field nameB {
                description 'field Description'
                label 'Fd'
        }}

The indentation of the brackets and the parameters is wrong generated. 括号和参数的缩进生成错误。 I expect auto indentation for recursively called methods. 我期望递归调用方法自动缩进。

I'm using Xtend 2.8.0 我正在使用Xtend 2.8.0

Something like this should do the trick for you. 这样的事情应该可以帮到您。

def generateField(Field field) '''
    field «field.name» {
        description '«field.description»'
        label '«field.label»'
        «IF !aliases.isEmpty»
            aliases {
                «FOR a : field.aliases SEPARATOR ','»«f.generateField»«ENDFOR»
            }
        «ENDIF»
    }
'''

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM