0

Is it possible to control the indentation of recursive called methods in 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

aphex
  • 3,372
  • 2
  • 28
  • 56

1 Answers1

2

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»
    }
'''
Sebastian Zarnekow
  • 6,609
  • 20
  • 23