Gopls: Поддержка шаблонных файлов
Gopls предоставляет некоторую поддержку для шаблонных файлов Go, то есть файлов, которые
обрабатываются с помощью text/template или
html/template.
Включение поддержки шаблонов
Gopls определяет шаблонные файлы по их расширению, которое может быть настроено с помощью
параметра templateExtensions. Если
этот список пуст, поддержка шаблонов отключена. (Это значение по умолчанию,
так как у шаблонов Go нет канонического расширения файла.)
Для обеспечения корректного определения языковой принадлежности при открытии шаблонных файлов
может потребоваться дополнительная настройка. Gopls распознаёт как "tmpl", так и "gotmpl"
для шаблонных файлов.
Например, в VS Code также потребуется добавить запись в
files.associations
:
<code class="language-json">"files.associations": {
".mytemplate": "gotmpl"
},
</code>
Возможности
В шаблонных файлах поддержка шаблонов работает внутри стандартных {{ разделителей. (Парсинг шаблонов Go
позволяет пользователю указать другие разделители, но gopls не знает, как это сделать.)
Поддержка шаблонов в gopls включает следующие функции:
- Диагностика: если парсинг шаблона возвращает ошибку, она отображается как диагностическое сообщение. (Отсутствие функций не вызывает ошибок.)
- Подсветка синтаксиса: для шаблонных файлов предоставляется подсветка синтаксиса.
- Определения: gopls предоставляет переход к определению внутри шаблонов, хотя он не понимает области видимости (все шаблоны считаются находящимися в одной глобальной области видимости).
- Ссылки: gopls предоставляет поиск ссылок, с тем же ограничением области видимости, что и для определений.
- Автозавершение: gopls пытается предлагать варианты автозавершения внутри шаблонов.
TODO: также
- Hover
- SemanticTokens
- Поиск символов
- DocumentHighlight
Исходные файлы для этой документации можно найти в golang.org/x/tools/gopls/doc.