eclipse-emf - 如何在 Acceleo 中使用循环删除模板后多余的新行?

标签 eclipse-emf acceleo

这是一个简单的 MOF 模型到文本脚本:

[comment encoding = UTF-8 /]
[module test('http://www.eclipse.org/uml2/2.1.0/UML')/]

[template public test(element : Model)]
[comment @main /]
[file ('test.txt', false, 'UTF-8')]
start
  [loop(element)/]
  [loop(element)/]
end
[/file]
[/template]

[template public loop(element : Model)]
[for (var : Integer | Sequence{1..3})]
[var/]
[/for]
[/template]

它生成以下文本:

start
  1
  2
  3

  1
  2
  3

end

如何删除3行之后多余的新行?谢谢!

最佳答案

您可以在 for 中使用分隔符:

[template public loop(element : Model)]
[for (var : Integer | Sequence{1..3}) separator('\n')]
[var/][/for]
[/template]

或者您可以修剪模板“循环”的结果:

[template public loop(element : Model) post(trim())]
[for (var : Integer | Sequence{1..3})]
[var/]
[/for]
[/template]

关于eclipse-emf - 如何在 Acceleo 中使用循环删除模板后多余的新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18373256/

相关文章:

eclipse - 使用EMF对象作为键

java - EMF 编辑域命令创建

eclipse - 使用自定义 ecore 元模型进行 Acceleo 转换

java - 尝试从Acceleo中的uml生成Java类

java - 如何创建数据类型不是 EMF 类的 EAttribute?

java - 如何以编程方式从 XSD 架构生成 EMF 模型(.ecore、.genmodel)?

eclipse - 创建 Acceleo 插件时出错 : failed to create task or type apitooling. apigeneration

java - 如何从 Java 类调用 Acceleo Generator (file.mtl) 而不会出现 java.io.IOException : 'generate.emtl' not found

java - 从java应用程序调用acceleo模板

eclipse - 在 Eclipse 之外运行 Ecore 模型的 EMF 验证