Jetbrains Goland HTML模板和代码完成

ipakzgxi  于 12个月前  发布在  Go
关注(0)|答案(2)|浏览(132)

我在Jetbrains Goland中使用Go HTML Templates。我如何获得所有3个:HTML格式,模板代码完成和模板格式?
假设我安装了Go Templates插件,并使用“.tpl”作为模板的文件扩展名,我有两个选择:
1.设置-编辑器-文件类型- HTML -添加“
.tpl”作为HTML类型。优点:我有一个HTML代码完成和语法突出显示与警告(见CON 2)CON 1:我没有模板项的代码完成,编辑器根本不知道模板CON 2:模板代码块被视为文本,例如,当我尝试格式化代码时,我没有RANGE块的代码缩进。
1.设置-编辑器-文件类型-转到模板-添加“*.tpl”作为注册类型,“HTML”作为底层类型(“模板数据语言”)优点:我有“点”的代码完成,可以看到它们的属性和方法(参见https://www.jetbrains.com/help/go/integration-with-go-templates.html)缺点:没有HTML突出显示,自动完成,或格式化.

bgtovc5b

bgtovc5b1#

经过几个小时的研究,我终于找到了答案:
设置-语言和框架-模板数据语言-项目语言-设置“HTML”
另外,我建议使用“*.go.html”作为Go Templates扩展。这样,即使在VSCode中打开模板,在GitHub上在线打开模板等,也可以看到语法高亮显示。

5kgi1eie

5kgi1eie2#

如果你把:

{{- /*gotype: github.com/USERNAME/PROJECTNAME/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/

相关问题