https://medium.com/golang-notes/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-visual-studio-code-%D0%B4%D0%BB%D1%8F-go-647ea94aa795#.pzd56i9cf
Настройка Visual Studio Code для Go
В этой заметке я опишу как установить бесплатный кроссплатформенный редактор кода от Microsoft — Visual Studio Code и настроить его для работы с языком Go.
Когда я только начинал изучать Go, для написания программ мне с головой хватало встроенного в Far редактора с подсветкой синтаксиса.
С увеличением объёма кода в проектах назревала потребность в инструментах для удобного рефакторинга, обнаружения ошибок в момент написания исходного текста, а не после компиляции, быстрого просмотра подсказок по функциям из сторонних пакетов. Тогда я задумался о полноценной IDE. Go-плагин для atom на тот момент оказался нерабочим, поэтому выбор пал на среду LiteIDE, которая мне понравилась за простоту установки и наличие отладчика из коробки. LiteIDE я использовал последние полтора года.
Прошло какое-то время. Я прочитал несколько книг по Go, множество статей на сайте 4gophers.ru, узнал про golint, govet, про соглашения о написании кода в Go подобные pep8 в Python, и понял, что возможностей LiteIDE мне стало мало. Запуск трёх хоткеев для build, vet, lint стал напрягать. Уже не помню как, мне на глаза попался редактор Visual Studio Code, который у меня так и прижился.
Ниже будет рассмотрен процесс установки и настройки VSC для пользователей Windows. Думаю, что под другие ОС, вы сможете это сделать самостоятельно.
Установка
Итак, будем считать, что у нас уже установлена последняя версия Go x64, настроен GOROOT и GOPATH.
64-битная версия нужна, чтобы иметь возможность включить отладку go-кода в VSC. Если у вас 32-битная Windows и/или 32-битный Go, то всё, что написано в этой заметке будет для вас актуально, за исключением раздела про установку отладчика.
- Заходим на сайт VSC https://www.visualstudio.com/ru-ru/products/code-vs.aspx и качаем версию установщика для Windows.
- Запускаем установщик (VSCodeSetup-stable.exe), везде жмём Next, а в конце Install.
- Запускаем VSC.
- Идём в меню View — Command Palette (Ctrl-Shift-P)
- Во всплывающей строке вводим ext inst и выбираем пункт Extensions: Install Extension
- Затем либо выбираем из списка расширение go, либо дописываем слово go, чтобы отфильтровать список. Нас интересует расширение от lukehoban. Ставим его, нажав на облако. Обязательно в конце перезапускаем VSC руками или нажав кнопку Restart now.
Настройка
Далее необходимо установить дополнительные пакеты для Go и отредактировать конфигурационный файл пользователя VSC.
Пакеты можно установить двумя способами.
- Открываем в VSC любой go-файл, после чего в нижнем правом углу увидим сообщение “Analysis Tools Missing”. Надо нажать на это сообщение и недостающие пакеты установятся автоматически.
- Можно установить пакеты, выполнив в командной строке следующие инструкции:
go get -u -v github.com/nsf/gocodego get -u -v github.com/rogpeppe/godefgo get -u -v github.com/golang/lint/golintgo get -u -v github.com/lukehoban/go-find-referencesgo get -u -v github.com/lukehoban/go-outlinego get -u -v golang.org/x/tools/cmd/gorenamego get -u -v sourcegraph.com/sqs/goreturnsgo get -u -v github.com/tpng/gopkgsgo get -u -v github.com/newhook/go-symbols
Проверьте, что папка %GOPATH%\bin у вас добавлена в переменную окружения PATH.
После этого идём в меню File — Preferences — User Settings.
В файл settings.json, который будет открыт справа, вставляем настройки и сохраняем файл (Ctrl-S):
{"go.buildOnSave": true,"go.lintOnSave": true,"go.buildFlags": [],"go.vetOnSave": true,"go.lintFlags": [],"go.useCodeSnippetsOnFunctionSuggest": false,"go.vetFlags": [],"go.formatOnSave": false,}"go.formatTool": "goreturns"
Перезапускаем VSC.
Если все установилось нормально, то мы должны увидеть подсветку синтаксиса, автодополнение кода, подсказку по параметрам функций, подсказки govet и golint и т.п.
Для проверки работоспособности можно нажать правой кнопкой мыши в окне редактирования go-файла и выбрать пункт меню Format Code. Если код отформатировался и не отобразилось сообщение “Analysis Tools Missing”, то всё работает как надо.
ВАЖНО. Форматирование и проверка кода работают после сохранения редактируемого файла. Не забывайте периодически сохраняться или включите автосохранение в настройках.
Установка отладчика
- Скачиваем 64-битный tdm-gcc, который необходим для сборки delve из исходников. http://tdm-gcc.tdragon.net/download
- Устанавливаем tdm-gcc с параметрами по умолчанию, например, в каталог C:\TDM-GCC-64
- Клонируем исходный код delve, переходим в каталог с ним и запускаем команду сборки:> cd c:\temp> git clone https://github.com/derekparker/delve/> cd c:\temp\delveЕсли у вас Go 1.5, необходимо выполнить команду ниже. Если же у вас Go 1.6, то можно пропустить этот шаг.> set GO15VENDOREXPERIMENT=1> C:\TDM-GCC-64\bin\mingw32-make.exe installОшибок при компиляции возникнуть не должно.Напомню, у вас должен быть установлен 64-битный Go.Для 32-битного я не проверял данную процедуру.Если у кого получится собрать delve для 32-битной windows, напишите в комментариях.
- Проверяем, что в %GOPATH%\bin появился файл dlv.exe
- Перезапускаем VSC, идём в меню View — Debug.
- На верхней панели в левой части экрана жмём на значок шестерёнки, откроется пустой файл launch.json, вставляем в него настройки и сохраняем файл:
{"version": "0.2.0","configurations": ["name": "Launch",{"request": "launch","type": "go","program": "${workspaceRoot}","mode": "debug","env": {},}"args": []}]
Всё. После этого должна заработать отладка.
Заключение
В целом работать с VSC приятнее, чем с LiteIDE. Фоновый lint и vet, поддержка git (самые необходимые команды), сокращают время на поиск ошибок и обслуживание кода.
Я только не нашёл, как делать Build по хоткею или из меню. Хотя, в LiteIDE я выполнял build, чтобы удостовериться, что код собирается без ошибок, а в VSC это проверяется “на лету” и если исходный текст содержит ошибки, внизу будет отмечено их количество.
Ссылки
- Visual Studio Code
- Go for Visual Studio Code
- tdm-gcc — сборка gcc для Windows
- Delve — отладчик для Go
- LiteIDE
- atom — IDE с возможностью писать go-код
- Far — консольный файловый менеджер для операционных систем семейства Windows
- 4gophers.ru — лучший сайт про Go на русском
2 comments:
Огромное спасибо за инструкцию, как раз искал способ отлаживать GO с интерфейсом. LiteIDE коряво работает с этим.
Кстати данный способ установки отладчика не сработал. Говорил, что "%GOPATH%\src" нет "github.com/derekparker/delve/cmd/dlv", надо было использовать "go get"
да, похоже от go get пока все равно не уйти
но интеграция в студию - уже прогресс!
Post a Comment