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.

GoRu.dev Golang на русском

На сайте представлена адаптированная под русский язык документация языка программирования Golang