Jetbrains Goland HTML 模板格式设置和代码完成

问题描述 投票:0回答:2

我在 Jetbrains Goland 中使用 Go HTML 模板。如何获得所有 3 个内容:HTML 格式、模板代码完成和模板的模板格式?

假设我安装了 Go Templates 插件并且使用“*.tpl”作为模板的文件扩展名,我有两个选择:

  1. 设置 - 编辑器 - 文件类型 - HTML - 添加“*.tpl”作为 HTML 类型。 优点:我有 HTML 代码补全和语法突出显示,并带有警告(请参阅 CON 2) 缺点 1:我没有模板项上的代码完成功能,编辑器根本不知道模板 缺点 2:模板代码块被视为文本,即,当我尝试格式化代码时,范围块没有代码缩进。

  2. 设置 - 编辑器 - 文件类型 - Go 模板 - 添加“*.tpl”作为注册类型,并使用“HTML”作为基础类型(“模板数据语言”) 优点:我有“点”的代码完成功能,并且可以查看它们的属性和方法(请参阅https://www.jetbrains.com/help/go/integration-with-go-templates.html) 缺点:没有 HTML 突出显示、自动完成或格式设置...

go go-templates goland
2个回答
6
投票

经过几个小时的研究,我终于找到了答案:

设置-语言和框架-模板数据语言-项目语言-设置“HTML”

另外,我建议使用“*.go.html”作为 Go 模板扩展。这样,即使在 VSCode、GitHub 上的在线模板等中打开模板,您也可以看到语法突出显示。


0
投票

如果你输入:

{{- /gotype:github.com/USERNAME/REPO/internal/models.TemplateData/ -}}

在模板文件的顶部,Goland 将促进您从 Golang 引入模板的自定义数据的属性和嵌套属性的代码完成。每次输入点运算符 {{.}} 时都会弹出。请注意,TemplateData 是您在“func (t *Template) Execute(wr io.Writer, data any) error”中传递给模板的自定义类型

https://www.jetbrains.com/help/go/integration-with-go-templates.html

您甚至可以为传递给模板的自定义函数获取代码完成,只要您将这些函数设置为 TemplateData 类型的属性或方法即可。在模板文件中公开自定义函数的另一种方法是使用 MYTEMPLATE.Funcs() 并通过 template.FuncMap 类型传递它们,但据我所知,这不允许代码完成。

https://www.calhoun.io/intro-to-templates-p3-functions/

© www.soinside.com 2019 - 2024. All rights reserved.