Xtend:向模板添加缩进

时间:2018-07-10 13:47:48

标签: xtend

我想创建一个缩进4个空格的模板,如下所示:

def myMethod() '''
        for (int i =0; i!= size; ++i) {
            doSomething();
        }
    '''

但是Xtend删除了for()和结束的'}'之前的4个空格。如何添加未删除的缩进?

1 个答案:

答案 0 :(得分:2)

我遇到过类似的问题,Xtend的模板系统可能很挑剔,但是有解决方法。当使用类似您显示的方法的东西时,我通常会发现我是从模板的另一部分调用它的,您可以在调用方法中创建缩进。例如:

def callingMethod() {'''
    for (1 to 10) {
        «myMethod()»  «««   This puts indents before everything within the method
    }
'''}
def myMethod() {'''
    for (int i =0; i!= size; ++i) {
        doSomething();
    }
'''}

另一种选择是在模板中明确添加空格,例如:

def myMethod() {'''
    «"    "»for (int i =0; i!= size; ++i) {
    «"    "»    doSomething();
    «"    "»}
'''}

或者我刚才发现的另一种方式

def myMethod() {'''
«""»
    for (int i =0; i!= size; ++i) {
        doSomething();
    }
«""»
'''}

我个人认为,在可能的情况下,第一种方法要干净得多。可能还有其他方法可以实现这一点,这些只是我在自己的工作中发现的几件事。