是否可以在xtend中控制递归调用方法的缩进?我有以下情况:
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»
}
'''
生成的内容如下所示:
field name {
description 'field Description'
label 'fD'
aliases {
field nameA {
description 'field Description'
label 'fD'
},
field nameB {
description 'field Description'
label 'Fd'
}}
括号的缩进和参数生成错误。我期望递归调用方法的自动缩进。
我正在使用Xtend 2.8.0
答案 0 :(得分:2)
这样的事情应该为你做好准备。
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»
}
'''