Skip to content

Latest commit

 

History

History
429 lines (293 loc) · 20.4 KB

File metadata and controls

429 lines (293 loc) · 20.4 KB

1.4 Инструменты разработки для Go

В этом разделе я ознакомлю Вас с несколькими средами разработки (IDE), которые помогут Вам более эффективно программировать. Они обладают такими возможностями как умное автодополнение и автоформатирование. Все они кроссплатформенные, поэтому шаги по настройке, которые я покажу, не будут слишком отличаться в зависимости от операционной системы, которую Вы используете.

LiteIDE

LiteIDE - нетребовательный к ресурсам системы IDE с открытым исходным кодом, который предназначен для разработки проектов только на Go. Он разработан visualfc.

Рисунок 1.4 Главная панель LiteIDE

Отличительные черты LiteIDE:

  • Кроссплатформенность
    • Windows
    • Linux
    • Mac OS
  • Кросскомпилируемость
    • Поддерживает разные среды компиляции
    • Поддерживает кросс-компиляцию проектов на Go
  • Управление проектами
    • Представление досументации основано на $GOPATH
    • Система компиляции основана на $GOPATH
    • Документация API основана на $GOPATH
  • Редактор исходного кода Go
    • Схема кода
    • Полная поддержка gocode
    • Доступ к документации Go и содержанию API
    • Просмотр выражений языка через F1
    • Переход к декларациям функций по F2
    • Поддержка Gdb
    • Автоформат через gofmt
  • Другое
    • Поддержка множества языков
    • Система плагинов
    • Темы текстового редактора
    • Поддержка синтаксиса основана на Kate
    • Умное полнотекстовое автодополнение
    • Настраиваемые сочетания клавиш для быстрого выполнения задач
    • Поддержка Markdown
      • Предпросмотр в реальном времени
      • Настраиваемые CSS
      • Экспорт в HTML и PDF
      • Конвертация и слияние в HTML и PDF

Установка LiteIDE

  • Установите LiteIDE:

    Сначала установите Go, затем скачайте версию LiteIDE, соответствующую Вашей операционной системе. Распакуйте скачанный пакет.

  • Установите gocode:

    Для того, чтобы заработало автодополнение, установите gocode.

      go get -u github.com/nsf/gocode
  • Настройте среду компиляции:

    Теперь измените конфигурацию LiteIDE согласно Вашей операционной системе. В Windows, если Вы используете 64-битную версию Go, Вам нужно выбрать на панели инструментов win64 в качестве среды конфигурации. Затем выберите opinion, найдите LiteEnv в левом списке и откройте win64.env в правом списке.

      GOROOT=c:\go
      GOBIN=
      GOARCH=amd64
      GOOS=windows
      CGO_ENABLED=1
    
      PATH=%GOBIN%;%GOROOT%\bin;%PATH%
      。。。

    Замените GOROOT=c:\go на свой путь установки Go, сохраните. Если у Вас есть MinGW64, добавьте в переменную окружения path значение c:\MinGW64\bin для поддержки cgo.

    В 64-битном Linux нужно выбрать linux64 на панели инструментов в качестве среды конфигурации. Затем выберите opinion, найдите LiteEnv в левом списке и выберите файл linux64.env в правом.

      GOROOT=$HOME/go
      GOBIN=
      GOARCH=amd64
      GOOS=linux
      CGO_ENABLED=1
    
      PATH=$GOBIN:$GOROOT/bin:$PATH   
      。。。

    Замените GOROOT=$HOME/go на тот, где у Вас установлен Go, сохраните.

  • $GOPATH

    $GOPATH - это путь, указывающий на то, где находятся проекты. Для получения подробностей откройте командную строку (или нажмите Ctrl+`пробелв LiteIDE), а затем напечатайте go help gopath. В LiteIDE очень легко увидеть и изменить значение $GOPATH. Для этого зайдите в View - Setup GOPATH.

Sublime Text

Сейчас я хочу рассказать про Sublime Text 2 (для краткости Sublime) + GoSublime + gocode + MarGo. И вот почему:

  • Умное автодополнение

    Рисунок 1.5 Умное автодополнение Sublime

  • Автоформатирование исходных кодов

  • Управление проектами

    Рисунок 1.6 Управление проектами в Sublime

  • Подсветка синтаксиса

  • Пробный период без функциональных ограничений навсегда. Вам могут напоминать о том, что нужно приобрести лицензию, но можно это игнорировать, если хотите. Конечно же, если Вы поймете, что Sublime увеличил Вашу производительность, и Вам он нравится, приобретите, пожалуйста, лицензионную копию и поддержите таким образом развитие проекта!

Сначала скачайте версию Sublime, соответствующую Вашей операционной системе.

  1. Нажмите Ctrl+`пробел, откройте командную строку и введите следующие команды:

     import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Пожалуйста, перезапустите Sublime Text для завершения установки'

    Когда процесс установки закончится, перезапустите Sublime Text. Затем найдите опцию Package Control в меню "Preferences".

    Рисунок 1.7 Sublime Package Control

  2. Для установки GoSublime, SidebarEnhancements и Go Build, нажмите Ctrl+Shift+p, чтобы открыть управление пакетами, затем напечатайте pcip (сокращение от "Package Control: Install Package").

    Рисунок 1.8 Установка пакетов Sublime

    Теперь введите "GoSublime", нажмите OK для установки пакета и повторите те же шаги для установки SidebarEnhancements и Go Build. По завершении установки снова перезапустите редактор.

  3. Чтобы проверить, успешно ли прошла установка, откройте Sublime, откройте файл main.go и проверьте, правильно ли подсвечивается синтаксис. Напечатайте import и проверьте, правильно ли работает автодополнение кода. После того, как Вы ввели import "fmt", напечатайте fmt. где-нибудь после выражения import и проверьте, работает ли автодополнение для функций.

    Если все работает, это значит, что Вы все настроили правильно.

    Если нет, еще раз проверьте значение переменной $PATH. Откройте терминал, выполните gocode. Если запуск не произошел, переменная $PATH настроена неправильно.

Vim

Vim - это популярный текстовый редактор для программистов, происшедший от своего предшественника Vi. У него есть функции умного автодополнения, компиляции и перехода к ошибкам.

Рисунок 1.8 Умное автодополнение для Go в Vim

  1. Установите подсветку ситаксиса для Go:

     cp -r $GOROOT/misc/vim/* ~/.vim/
  2. Включите подсветку синтаксиса:

     filetype plugin indent on
     syntax on
  3. Установите gocode:

     go get -u github.com/nsf/gocode

    gocode по умолчанию будет установлен в $GOBIN.

  4. Настройте gocode:

     ~ cd $GOPATH/src/github.com/nsf/gocode/vim
     ~ ./update.bash
     ~ gocode set propose-builtins true
     propose-builtins true
     ~ gocode set lib-path "/home/border/gocode/pkg/linux_amd64"
     lib-path "/home/border/gocode/pkg/linux_amd64"
     ~ gocode set
     propose-builtins true
     lib-path "/home/border/gocode/pkg/linux_amd64"

    Немного о конфигурации gocode:

    propose-builtins: определяет, нужно ли включать умное автодополнение; по умолчанию false.

    lib-path: изначально gocode ищет пакеты в $GOPATH/pkg/$GOOS_$GOARCH и $GOROOT/pkg/$GOOS_$GOARCH. Эта настройка нужна для добавления дополнительных путей.

  5. Поздравляем! Попробуйте :e main.go для погружения в мир Go!

Emacs

Emacs называют оружием Бога. Это не только редактор, но и мощная IDE.

Рисунок 1.10 Главная панель редактора Go в Emacs

  1. Установите подсветку синтаксиса:

     cp $GOROOT/misc/emacs/* ~/.emacs.d/
  2. Установите gocode:

     go get -u github.com/nsf/gocode

    По умолчанию gocode будет установлен в $GOBIN.

  3. Настройте gocode:

     ~ cd $GOPATH/src/github.com/nsf/gocode/vim
     ~ ./update.bash
     ~ gocode set propose-builtins true
     propose-builtins true
     ~ gocode set lib-path "/home/border/gocode/pkg/linux_amd64"
     lib-path "/home/border/gocode/pkg/linux_amd64"
     ~ gocode set
     propose-builtins true
     lib-path "/home/border/gocode/pkg/linux_amd64"
  4. Установите автодополнение:

    Скачайте и распакуйте:

     ~ make install DIR=$HOME/.emacs.d/auto-complete

    Настройте файл ~/.emacs:

     ;;auto-complete
     (require 'auto-complete-config)
     (add-to-list 'ac-dictionary-directories "~/.emacs.d/auto-complete/ac-dict")
     (ac-config-default)
     (local-set-key (kbd "M-/") 'semantic-complete-analyze-inline)
     (local-set-key "." 'semantic-complete-self-insert)
     (local-set-key ">" 'semantic-complete-self-insert)	

    Для более подробной информации пройдите по ссылке.

  5. Настройте файл .emacs:

     ;; golang mode
     (require 'go-mode-load)
     (require 'go-autocomplete)
     ;; speedbar
     ;; (speedbar 1)
     (speedbar-add-supported-extension ".go")
     (add-hook
     'go-mode-hook
     '(lambda ()
     	;; gocode
     	(auto-complete-mode 1)
     	(setq ac-sources '(ac-source-go))
     	;; Imenu & Speedbar
     	(setq imenu-generic-expression
     		'(("type" "^type *\\([^ \t\n\r\f]*\\)" 1)
     		("func" "^func *\\(.*\\) {" 1)))
     	(imenu-add-to-menubar "Index")
     	;; Outline mode
     	(make-local-variable 'outline-regexp)
     	(setq outline-regexp "//\\.\\|//[^\r\n\f][^\r\n\f]\\|pack\\|func\\|impo\\|cons\\|var.\\|type\\|\t\t*....")
     	(outline-minor-mode 1)
     	(local-set-key "\M-a" 'outline-previous-visible-heading)
     	(local-set-key "\M-e" 'outline-next-visible-heading)
     	;; Menu bar
     	(require 'easymenu)
     	(defconst go-hooked-menu
     		'("Go tools"
     		["Go run buffer" go t]
     		["Go reformat buffer" go-fmt-buffer t]
     		["Go check buffer" go-fix-buffer t]))
     	(easy-menu-define
     		go-added-menu
     		(current-local-map)
     		"Go tools"
     		go-hooked-menu)
    
     	;; Other
     	(setq show-trailing-whitespace t)
     	))
     ;; helper function
     (defun go ()
     	"run current buffer"
     	(interactive)
     	(compile (concat "go run " (buffer-file-name))))
    
     ;; helper function
     (defun go-fmt-buffer ()
     	"run gofmt on current buffer"
     	(interactive)
     	(if buffer-read-only
     	(progn
     		(ding)
     		(message "Buffer is read only"))
     	(let ((p (line-number-at-pos))
     	(filename (buffer-file-name))
     	(old-max-mini-window-height max-mini-window-height))
     		(show-all)
     		(if (get-buffer "*Go Reformat Errors*")
     	(progn
     		(delete-windows-on "*Go Reformat Errors*")
     		(kill-buffer "*Go Reformat Errors*")))
     		(setq max-mini-window-height 1)
     		(if (= 0 (shell-command-on-region (point-min) (point-max) "gofmt" "*Go Reformat Output*" nil "*Go Reformat Errors*" t))
     	(progn
     		(erase-buffer)
     		(insert-buffer-substring "*Go Reformat Output*")
     		(goto-char (point-min))
     		(forward-line (1- p)))
     	(with-current-buffer "*Go Reformat Errors*"
     	(progn
     		(goto-char (point-min))
     		(while (re-search-forward "<standard input>" nil t)
     		(replace-match filename))
     		(goto-char (point-min))
     		(compilation-mode))))
     		(setq max-mini-window-height old-max-mini-window-height)
     		(delete-windows-on "*Go Reformat Output*")
     		(kill-buffer "*Go Reformat Output*"))))
     ;; helper function
     (defun go-fix-buffer ()
     	"run gofix on current buffer"
     	(interactive)
     	(show-all)
     	(shell-command-on-region (point-min) (point-max) "go tool fix -diff"))
  6. Поздравляем, все готово! Панель скорости по умолчанию отключена - для включения удалите символы комментария в строке ;;(speedbar 1), или можно сделать это посредством M-x speedbar.

Eclipse

Eclipse также является отличным инструментом разработки. Я покажу Вам, как использовать его для того, чтобы писать программы на Go.

Рисунок 1.1 Основная панель Eclipse для редактирования кода на Go

  1. Скачайте и установите Eclipse.

  2. Скачайте goclipse http://code.google.com/p/goclipse/wiki/InstallationInstructions.

  3. Скачайте gocode:

    gocode на Github:

     https://github.com/nsf/gocode

    В Windows Вам нужно установить git, обычно мы используем msysgit.

    В командной строке установите gocode:

     go get -u github.com/nsf/gocode

    Если хотите, можете установить его из исходных кодов.

  4. Скачайте и установите MinGW.

  5. Настройте плагины:

    Windows->Preferences->Go

    (1).Настройте компилятор Go.

    Рисунок 1.12 Настройки Go в Eclipse

    (2).Настройте gocode (если нужно), установите путь к gocode туда, где находится gocode.exe.

    Рисунок 1.13 Настройки gocode

    (3).Настройте gdb (по желанию), установите путь к gdb туда, где находится gdb.exe.

    Рисунок 1.14 Установки gdb

  6. Проверьте правильность установки:

    Создайте новый проект Go и файл hello.go как на рисунке:

    Рисунок 1.15 Создание нового проекта и файла

    Протестируйте установку так (Вам нужно напечатать команду в консоли Eclipse):

    Рисунок 1.16 Тестирование программы Go в Eclipse

IntelliJ IDEA

Те, кто работал с Java, должны быть знакомы с этой IDE. Она поддерживает подсветку синтаксиса Go и умное автодополнение кода посредством плагина.

  1. Скачайте IDEA, подойдут версии и Ultimate, и Community.

  2. Установите плагин Go. Выберите File - Setting - Plugins, затем выберите Browser repo.

  3. Выберите golang, затем двойным щелчком мыши download and install и подождите, пока завершится загрузка.

    Нажмите Apply, затем перезапустите приложение.

  4. Теперь можно создавать проект Go.

    Введите расположение Go sdk на следующем шаге - скорее всего, это $GOROOT.

    Visual Studio Code

Visual Studio Code это редактор кода, но при этом обладающий функциями IDE, полагающийся на расширения.

![](images/1.4.vscode1.png?raw=true)
  • Скачайте vscode.

  • Установите плагин Go. Выберите в левой панели Расширения или нажмите CTRL+SHIFT+X, затем выберите в поиске расширений Go от likehoban.

  • Также необходимо, чтобы уже был установлен Go, настроен GOROOT и GOPATH.

  • Далее необходимо установить дополнительные пакеты для Go:

Открываем в vscode любой go-файл, после чего в нижнем правом углу увидим сообщение “Analysis Tools Missing”. Надо нажать на это сообщение и недостающие пакеты установятся автоматически.

  • Теперь можно создавать проект Go.

Ссылки