[英]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.