Разработка на Go с помощью VSCode
Visual Studio Code (VS Code) — это бесплатный редактор кода с открытым исходным кодом, разработанный Microsoft, который поддерживает множество языков программирования и предоставляет такие возможности, как подсветка кода, интеллектуальное автодополнение кода, рефакторинг кода и отладка.
С официальным расширением Go для Visual Studio Code вы можете получить ряд практических возможностей для разработки проектов на Go, включая IntelliSense, навигацию по коду, поиск символов, модульное тестирование и отладку программ.
Если вы не знакомы с VS Code или ещё не установили его, можете обратиться к:Учебник по VSCode。
Установка плагина Go
Откройте магазин расширений VS Code и выполните поиск:Go Extension for VS Code。
В редакторе слева нажмите «Расширения», найдите Go, затем установите официальный плагин:

После установки мы можем начать писать код на Go, введяfmt.Попробуйте IntelliSense:

IntelliSense
IntelliSense предоставляется языковым сервером gopls, поддерживаемым официальной командой Go. Его поведение можно настроить с помощью параметров конфигурации gopls.

1. Семантическая подсветка
VS Code по умолчанию использует подсветку синтаксиса на основе грамматики TextMate; чтобы включить более качественную семантическую подсветку, включите её в настройках.ui.semanticTokens:
"gopls": { "ui.semanticTokens": true }
2. Автодополнение кода
При редактировании исходного кода Go расширение предоставляет предложения автодополнения в реальном времени, поддерживая подсказки членов из текущего пакета, импортированных пакетов и ещё не импортированных пакетов; введите "имя пакета + .", чтобы вызвать подсказки методов/констант в этом пакете.
Горячие клавиши:
Ctrl+空格(⌃Space)Вручную вызвать всплывающее окно автодополнения
3. Всплывающая подсказка документации при наведении
Наведите курсор на переменные, функции или структуры, чтобы увидеть всплывающее окно с подробностями, такими как комментарии документации и сигнатуры функций.
4. Подсказки параметров функции
Введите открывающую круглую скобку функции(Сигнатура параметра автоматически всплывает при вызове функции; при вводе аргументов подчёркивание следует за переключением на текущий заполняемый параметр;
Горячие клавиши:
Shift+Cmd+空格(⇧⌘Space)Вручную вызывать подсказки параметров, когда курсор находится внутри круглых скобок.
Навигация по коду
Контекстное меню редактора, вызываемое правой кнопкой мыши, включает полный набор функций навигации по коду:
- F12 Перейти к определению: переход к исходному определению типа/переменной
- Перейти к определению типа: найти исходный код нижележащего типа переменной.
- Alt+F12 (⌥F12) Просмотреть определение: всплывающий предпросмотр исходного кода без переключения файлов
- Shift+F12 (⇧F12) Найти все ссылки: список всех мест ссылок на текущий символ
- Shift+Alt+H(⇧⌥H) Иерархия вызовов: просмотр цепочки вызывающих и вызываемых для функции.
- Cmd+F12 (⌘F12) Просмотреть реализации: для интерфейса — просмотреть все реализующие типы; для конкретного типа — просмотреть все интерфейсы, которые он реализует.
Открыть палитру командShift+Cmd+P(⇧⌘P), быстро перейти с помощью поиска по символам:
Shift+Cmd+O(⇧⌘O): Поиск символов в текущем файлеCmd+T(⌘T): Глобальный поиск символов по всему рабочему пространству
Использование командыGo: Toggle Test File, быстро переключайтесь туда и обратно между бизнес-кодом и соответствующим тестовым файлом.
Форматирование кода
- Горячие клавиши:
Shift+Alt+F(⇧⌥F)Форматирование текущего файла в один клик - Вы также можете выполнить "Format Document" через палитру команд или контекстное меню по правому щелчку.
Настройка форматирования
Отключить автоформатирование при сохранении
"[go]": { "editor.formatOnSave": false }Установить расширение Go как форматтер по умолчанию для файлов Go.
"[go]": { "editor.defaultFormatter": "golang.go" }Включить строгий стиль форматирования gofumpt (строже, чем встроенные правила gofmt).
"gopls": { "formatting.gofumpt": true }Форматирование реализовано через gopls под капотом
Модульное тестирование
Боковая панель Test Panel в VS Code + быстрые кнопки CodeLens над кодом поддерживаютФункция/Файл/Пакет/Весь проектдля модульных тестов, бенчмарк-тестов и профилирования производительности.
Ввод в палитре командGo: testВы можете просмотреть все команды тестирования; часто используемые:
- Go: Test Function At Cursor: запустить тест для функции, в которой находится курсор
- Go: Test File: запустить все тестовые случаи в текущем файле
- Go: Test Package: запустить все тесты в текущем пакете
- Go: Test All Packages in Workspace: пакетное тестирование всего проекта

Первые три команды могут автоматически генерировать скелеты тестовых случаев на основе gotests; расширение поддерживает настройку:
go.testOnSave: Автоматически запускать тесты при сохранении кодаgo.coverOnSave: Автоматически генерировать покрытие тестами при сохраненииgo.testFlags: Настраивать параметры запуска go test
Debug
Расширение Go использует отладчик Delve для отладки кода Go и обладает уникальными возможностями:
- Локальная отладка + отладка удалённого сервиса
- Используйте синтаксис выражений Delve для просмотра пользовательских данных в панели отладки.
- Выполняйте нативные команды dlv в консоли отладки, чтобы динамически изменять конфигурацию отладки и просматривать переменные.
- Конфигурация
hideSystemGoroutinesСкрыть/показать системные горутины - Щёлкните код правой кнопкой мыши, чтобы открыть представление ассемблера (представление дизассемблирования).
- Экспериментальные функции: отладка вызовов функций, анализ core-файлов и обратная отладка Mozilla rr.