Gopls:模板文件支持

Gopls 为 Go 模板文件提供了一些支持,即由 text/templatehtml/template 解析的文件。

启用模板支持

Gopls 根据文件扩展名识别模板文件,该扩展名可通过 templateExtensions 设置进行配置。如果此列表为空,则模板支持将禁用。(这是默认值,因为 Go 模板没有标准的单一文件扩展名。)

可能需要其他配置,以确保您的客户端在打开模板文件时选择正确的语言类型。Gopls 识别模板文件的 `"tmpl"` 和 `"gotmpl"`。例如,在 VS Code 中,您还需要向 files.associations 映射添加一个条目。

"files.associations": {
  ".mytemplate": "gotmpl"
},

功能

在模板文件中,模板支持在默认的 {{ 分隔符内工作。(Go 模板解析允许用户指定其他分隔符,但 gopls 无法识别。)

Gopls 模板支持包括以下功能:

  • 诊断:如果模板解析返回错误,它将显示为诊断。(缺少函数不会产生错误。)
  • 语法高亮:为模板文件提供语法高亮。
  • 定义:gopls 在模板内部提供跳转到定义的功能,尽管它不理解作用域(所有模板都被视为在一个全局作用域中)。
  • 引用:gopls 提供查找引用功能,具有与定义相同的范围限制。
  • 补全:gopls 将尝试在模板内部提供补全建议。

待办:也支持

  • 悬停 (Hover)
  • 语义标记
  • 符号搜索
  • 文档高亮

本文档的源代码可以在 golang.org/x/tools/gopls/doc 下找到。