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 下找到。