Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>GoHTML FuncMap CompletionNew to Visual Studio Code? Get it now.
GoHTML FuncMap Completion

GoHTML FuncMap Completion

Sleeps

|
15 installs
| (0) | Free
Полнофункциональное расширение для работы с Go HTML шаблонами: автодополнение функций и переменных, определение типов, диагностика ошибок, навигация по коду
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GoHTML FuncMap Completion

🚀 Полнофункциональное расширение для VS Code для работы с Go HTML шаблонами. Предоставляет интеллектуальное автодополнение, определение типов переменных, диагностику ошибок и множество других возможностей для повышения продуктивности разработки.

✨ Основные возможности

🎯 Автодополнение

  • Функции: Автоматическое предложение доступных функций с сигнатурами и описаниями
  • Переменные: Автодополнение объявленных в шаблоне переменных с типами
  • Шаблоны: Готовые сниппеты для if, range, with, define и других конструкций
  • Сниппеты: Более 15 готовых сниппетов для быстрого написания кода

🔍 Интеллектуальные подсказки

  • Hover для функций: Отображение сигнатуры, описания и типа возвращаемого значения
  • Hover для переменных: Отображение типа данных при наведении курсора
  • Определение типов: Автоматическое определение типов на основе литералов и функций

🧭 Навигация по коду

  • Go to Definition: Переход к объявлению переменной (Ctrl+Click)
  • Find All References: Подсветка всех вхождений переменной
  • Rename Symbol: Переименование переменных с обновлением всех вхождений

🔧 Диагностика и проверка

  • Проверка блоков: Автоматическая проверка незакрытых if, range, with блоков
  • Подсветка ошибок: Визуальное отображение проблем в коде
  • Предупреждения: Уведомления о потенциальных проблемах

⚙️ Дополнительные функции

  • Контекстные команды: Правый клик для быстрого доступа к функциям
  • Автозакрытие скобок: Автоматическое закрытие {{}}, (), [], {}
  • Сворачивание кода: Поддержка сворачивания блоков кода
  • Автоотступы: Правильные отступы для вложенных блоков

🚀 Быстрый старт

Установка

  1. Скачайте файл .vsix из релизов
  2. В VS Code: Ctrl+Shift+X → ... → Install from VSIX...
  3. Выберите скачанный файл
  4. Перезапустите VS Code

Первое использование

  1. Откройте файл с расширением .gohtml
  2. Начните вводить код - увидите автодополнение
  3. Наведите курсор на переменную или функцию для подсказки
  4. Используйте Ctrl+Click для перехода к определению

📝 Примеры использования

Автодополнение функций

{{ pro[Ctrl+Space] }}  <!-- Предложит: profile, profileUid, parseUserAgent -->

Определение типов переменных

{{ $userData := profile .Request }}  <!-- Тип: models.ProfileData -->
{{ $name := "John" }}                <!-- Тип: string -->
{{ $age := 25 }}                     <!-- Тип: int -->
{{ $active := true }}                <!-- Тип: bool -->

Сниппеты

if[Tab]     <!-- {{ if condition }} ... {{ end }} -->
range[Tab]  <!-- {{ range $index, $item := items }} ... {{ end }} -->
with[Tab]   <!-- {{ with $var := value }} ... {{ end }} -->

Навигация

  • Ctrl+Click на $userData → переход к объявлению
  • F12 на переменной → определение
  • Shift+F12 → все вхождения

⚙️ Настройки

Расширение предоставляет гибкие настройки:

{
  "gohtmlFuncmap.enableVariableHover": true, // Hover для переменных
  "gohtmlFuncmap.enableVariableCompletion": true, // Автодополнение переменных
  "gohtmlFuncmap.enableSnippets": true, // Сниппеты шаблонов
  "gohtmlFuncmap.enableDiagnostics": true, // Диагностика ошибок
  "gohtmlFuncmap.enableFunctionSnippets": true // Сниппеты функций
}

🎯 Поддерживаемые паттерны

Присваивание переменных

{{ $userData := profile .Request }}
{{ $userName := $userData.Name }}
{{ $pageTitle := .Title }}
{{ $items := .Items }}

Переменные в циклах

{{ range $index, $item := $items }}
    {{ $itemName := $item.Name }}
{{ end }}

Переменные в блоках

{{ with $user := profile .Request }}
    {{ $user.Name }}
{{ end }}

Литералы

{{ $string := "Hello" }}      <!-- string -->
{{ $number := 42 }}           <!-- int -->
{{ $float := 3.14 }}          <!-- float64 -->
{{ $bool := true }}           <!-- bool -->
{{ $array := [1,2,3] }}       <!-- []interface{} -->
{{ $map := {"key":"value"} }} <!-- map[string]interface{} -->

🔧 Команды

Контекстные команды (правый клик)

  • Show Function Info - показать информацию о функции под курсором
  • Show Variables in Template - показать все переменные в шаблоне

Горячие клавиши

  • Ctrl+Space - принудительное автодополнение
  • Ctrl+Click - переход к определению
  • F12 - определение символа
  • Shift+F12 - все вхождения

📋 Сниппеты

Основные шаблоны

  • if - условный оператор
  • ifelse - условный оператор с else
  • range - цикл по элементам
  • with - блок с переменной
  • define - определение шаблона
  • template - включение шаблона
  • block - блок шаблона

Переменные и функции

  • var - присваивание переменной
  • print - вывод переменной
  • field - вывод поля контекста
  • func - вызов функции
  • pipe - пайплайн

HTML структуры

  • html - базовая HTML структура
  • form - HTML форма
  • table - таблица с циклом

🐛 Диагностика

Расширение автоматически проверяет:

  • ✅ Незакрытые блоки if, range, with, define
  • ✅ Неожиданные {{end}} без соответствующих блоков
  • ✅ Правильность структуры шаблонов

🔄 Обновления

Версия 1.0.0

  • ✨ Полная переработка архитектуры
  • 🎯 Улучшенное определение типов
  • 🔍 Интеллектуальные подсказки
  • 🧭 Навигация по коду
  • 🔧 Диагностика ошибок
  • 📝 Богатые сниппеты
  • ⚙️ Гибкие настройки

🤝 Разработка

Структура проекта

├── extension.js              # Основной код расширения
├── gotemplate-funcs.json     # Список функций с типами
├── package.json              # Конфигурация расширения
├── language-configuration.json # Конфигурация языка
├── snippets/gohtml.json      # Сниппеты
├── dev.gohtml               # Тестовый файл
└── README.md                # Документация

Добавление новых функций

Отредактируйте gotemplate-funcs.json:

{
  "name": "functionName",
  "signature": "functionName(param1: type1, param2: type2) (returnType)",
  "description": "Описание функции"
}

Сборка

npm install
npm run package

📄 Лицензия

MIT License - используйте свободно в любых проектах.

🙏 Поддержка

  • 🐛 Issues
  • 💡 Feature Requests
  • ⭐ Star на GitHub

Сделано с ❤️ для сообщества Go разработчиков

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft