| --- | 
 | title: "Gopls: Support for template files" | 
 | --- | 
 |  | 
 | Gopls provides some support for Go template files, that is, files that | 
 | are parsed by [`text/template`](https://pkg.go.dev/text/template) or | 
 | [`html/template`](https://pkg.go.dev/html/template). | 
 |  | 
 | ## Enabling template support | 
 |  | 
 | Gopls recognizes template files based on their file extension, which | 
 | may be configured by the | 
 | [`templateExtensions`](../settings.md#templateExtensions) setting. If | 
 | this list is empty, template support is disabled. (This is the default | 
 | value, since Go templates don't have a canonical file extension.) | 
 |  | 
 | Additional configuration may be necessary to ensure that your client | 
 | chooses the correct language kind when opening template files. | 
 | Gopls recognizes both `"tmpl"` and `"gotmpl"` for template files. | 
 | For example, in `VS Code` you will also need to add an | 
 | entry to the | 
 | [`files.associations`](https://code.visualstudio.com/docs/languages/identifiers) | 
 | mapping: | 
 | ```json | 
 | "files.associations": { | 
 |   ".mytemplate": "gotmpl" | 
 | }, | 
 | ``` | 
 |  | 
 |  | 
 | ## Features | 
 | In template files, template support works inside | 
 | the default `{{` delimiters. (Go template parsing | 
 | allows the user to specify other delimiters, but | 
 | gopls does not know how to do that.) | 
 |  | 
 | Gopls template support includes the following features: | 
 | + **Diagnostics**: if template parsing returns an error, | 
 | it is presented as a diagnostic. (Missing functions do not produce errors.) | 
 | + **Syntax Highlighting**: syntax highlighting is provided for template files. | 
 | + **Definitions**: gopls provides jump-to-definition inside templates, though it does not understand scoping (all templates are considered to be in one global scope). | 
 | + **References**: gopls provides find-references, with the same scoping limitation as definitions. | 
 | + **Completions**: gopls will attempt to suggest completions inside templates. | 
 |  | 
 | TODO: also | 
 | + Hover | 
 | + SemanticTokens | 
 | + Symbol search | 
 | + DocumentHighlight | 
 |  | 
 |  |