问题标签 [stringtemplate-4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
802 浏览

stringtemplate-4 - 如何从 jar 文件加载 StringTemplateGroup 文件?

在 jar 中包含模板组文件的最佳实践是什么?

我想将我的 StringTemplateGroup 文件包含在我的可执行 jar 中。我正在使用 Eclipse 并将模板组文件放在项目下名为“模板”的文件夹中。在我的 java 代码中,我使用以下方法创建文件:

STGroup 文件模板 = new STGroupFile("template/file.stg");

这在 Eclipse 中运行良好,但是当我导出 jar 并运行它时,出现以下错误:

线程“主”java.lang.IllegalArgumentException 中的异常:没有这样的组文件:模板\HasbroServiceHelper.stg

如何在 jar 文件本身中获取文件名,以便我可以使用“jar:file”作为前缀,或者是否有更好的方法将模板文件打包到 jar 中?

0 投票
1 回答
751 浏览

java - 自定义字符串分隔符 stringtemplate-4

我正在尝试在 android 中使用 stringtemplate-4 引​​擎。

但我需要开始分隔符,

而结束分隔符应该是,

在这里,我认为只允许使用字符分隔符。那么如何使用字符串分隔符呢?

提前谢谢。

0 投票
1 回答
251 浏览

stringtemplate - 如何使用编译好的模板?

我在 StringTemplate 页面上发现了一些对模板编译的参考(http://www.stringtemplate.org/api/org/stringtemplate/v4/compiler/Compiler.html)。可以说,这些信息是宝石般的。

我找不到任何关于为什么以及如何在 ST4 中使用模板编译的描述/教程/示例。我想利用此功能,因为我怀疑它可能对性能有益。

任何指针?

0 投票
1 回答
301 浏览

antlr - 结合 Antlr 3.5.2 和 StringTemplate 4 进行代码生成

我正在处理的当前项目仅限于使用 antlr 3.5.2,但我想使用 StringTemplate 4 的功能集来生成代码。antlr 3.5.2 可以生成使用 StringTemplate 4 的 java treewalker 吗?(例如,一个带有 output=template 的树语法生成一个带有 ST* 引用而不是 StringTemplate* 的 java 文件)

0 投票
0 回答
37 浏览

stringtemplate-4 - 是否有一种简洁的方法来引用 StringTemplate 中属性的属性

我发现自己想写<prop1.subprop1:sometemplate>将模板应用于属性的属性列表。为此,我必须创建两级模板:我必须在 prop1 上调用外部模板,然后让它处理下一个属性。

数据模型:

目标:

所以我最终得到

这有点笨拙。

然后我得到了这个:

我想生成:

其中第一个“reqparam”来自最深的项目。我尝试编写以下内容,但 ST 在我尝试递归构建列表的第二个模板中给了我语法错误。

0 投票
1 回答
464 浏览

apache-camel - Apache Camel / 字符串模板组件 / 模板组

在 Apache Camel 中,是否可以使用字符串模板组件来使用模板组(参见https://theantlrguy.atlassian.net/wiki/display/ST4/Group+file+syntax )?

我想加载一个模板组文件,以便能够使用在那里定义的命名模板,并在字符串模板端点引用的模板文件中使用它们。

似乎没有任何方法可以配置字符串模板端点或组件来定义加载组文件的位置。

关于这是否可能以及如果可以如何做的任何想法?

0 投票
2 回答
505 浏览

c# - 在 ST4/C# 中,您可以在没有 TemplateGroup 的情况下注册新的渲染器吗?

RegisterRenderer 方法出现的唯一位置是 TemplateGroup。但我只有一个模板,通过字符串提供,而不是文件系统上的多个模板。

或者,我如何使用 TemplateGroup 但通过字符串提供模板?

0 投票
1 回答
933 浏览

stringtemplate - 如何生成多行注释

stringtemplate-4中,如何生成多行注释?例如,模板是这样的(评论的开头和结尾在其他模板中):

并且DESCRIPTION是一个长字符串,其中也可能包含换行符,例如:

所以我们想要输出字符串,如:

0 投票
2 回答
428 浏览

java - 在模板中嵌入java代码

是否可以在 ST4 模板中嵌入可执行的 java 代码?例如,如果我想将一个字符串传递给我的模板,它有时会按原样打印字符串,有时会以大写形式打印它,所以我想要一个 java 代码来进行必要的转换。如果没有此功能,我看到了 3 种实现相同功能的方法:

(1)预先计算java中的替代值,并一次性将它们全部传递给模板(但这可能会导致参数过多):

(2) 如果这样的参数太多,另一种选择是将模板分解成更小的部分,但这会使代码变得丑陋且不可读:

(3) 预先计算类内部所有相关值,让模板调用getter函数(不带参数)简单地从类中获取相关值。

截至目前(如果嵌入的 java 类不可用),第三个选项看起来是最好的解决方案。请告知是否存在更好的解决方案。

注意:在上面的示例中,我仅使用 CAPS 作为示例,可能还需要更复杂的 java 函数。

0 投票
1 回答
352 浏览

java - 如何在 StringTemplate v4 中获取属性

我有以下代码

如何遍历所有属性,即属性 1、属性 2 等?我想获取模板中的所有属性列表。