Dans cette section, je vais vous présenter quelques IDE qui peuvent vous aider à coder plus efficacement, grâce à des fonctionnalités telles la complétion de code et le formattage automatiques. Ils sont tous multi-plate-formes, les manipulations présentées ne devraient donc pas être très éloignées, même si vous n'utilisez pas le même système d'exploitation.
LiteIDE est un IDE léger et multi-plate-formes dédié uniquement au développement en Go, développé par visualfc.
Figure 1.4 Panneau principal de LiteIDE
Fonctionnalités de LiteIDE:
- Multi-plate-formes
- Windows
- Linux
- Mac OS
- Compilation croisée
- Gestion d'environnements de compilation multiples
- Support de la compilation croisée avec Go
- Standards en gestion de projet
- Documentation basée sur le $GOPATH
- Compilation basée sur le $GOPATH
- Index la documentation de l'API basée sur le $GOPATH
- Éditeur de code source Go
- Mise en forme du code
- Support complet de gocode
- Gestion de la documentation and et de l'index de l'API de Go
- Afficher l'expression d'un code via
F1
- Naviguer entre déclaration de fonctions via
F2
- Support Gdb
- Auto-formattage via
gofmt
- Autres
- Multi-langues
- Système d'extensions
- Thèmes d'éditeur de texte
- Support dela syntaxe basé sur Kate
- Complétion intelligente basée en mode full-text
- Personnalisation des raccourcis
- Support Markdown
- Prévisualisation en temps réel
- CSS personnalisé
- Exportation en HTML et PDF
- Conversion et fusion en HTML et PDF
-
Installer LiteIDE
Vous devez installer Go en premier, puis télécharger la version adaptée à votre système d'exploitation. Décompressez le paquet pour ensuite l'exécuter directement.
-
Installer gocode
Vous devez installer gocode pour utiliser la complétion intelligente
go get -u github.com/nsf/gocode
-
Environment de compilation
Changer de configuration de LiteIDE pour correspondre à votre système d'exploitation Dans Windows avec la version 64-bit de Go, vous devriez utiliser win64 comme configuration de votre environnement dans la barre d'outils. Ensuite, choisissez
Options
, puisLiteEnv
dans la liste de gauche et sélectionnez le fichierwin64.env
dans la liste de droite.GOROOT=c:\go GOBIN= GOARCH=amd64 GOOS=windows CGO_ENABLED=1 PATH=%GOBIN%;%GOROOT%\bin;%PATH% 。。。
Modifiez
GOROOT=c:\go
par le chemin de votre installation Go, puis sauvegardez. Si vous avez MinGW64, ajoutezc:\MinGW64\bin
au chemin de votre variable d'environnement pour le support decgo
.Pour Linux avec Go en version 64-bit, choisissez linux64 comme configuration de votre environnement dans la barre d'outils. Ensuite, choisissez
Options
, puisLiteEnv
dans la liste de gauche et sélectionnez le fichierlinux64.env
dans la liste de droite.GOROOT=$HOME/go GOBIN= GOARCH=amd64 GOOS=linux CGO_ENABLED=1 PATH=$GOBIN:$GOROOT/bin:$PATH 。。。
Modifiez
GOROOT=$HOME/go
par le chemin de votre installation Go. -
$GOPATH
$GOPATH est le chemin du dossier de vos projets. Ouvrez l'outil commande (
Ctrl+
dans LiteIDE), puis tapezgo help gopath
pour plus de détails. C'est très simple de voir et modifier votre $GOPATH dans LiteIDE. ChoisissezView - Setup GOPATH
pour voir et modifier ces valeurs.
Dans cette partie je vais vous présenter Sublime Text 2 (Sublime tout court) + GoSublime + gocode + MarGo.
-
Complétion Intelligente
Figure 1.5 Complétion intelligente avec Sublime
-
Auto-formattage du code source
-
Gestion de projet
Figure 1.6 Gestion de projet sous Sublime
-
Coloration syntaxique
-
Version gratuite d'essai permanente sans limitation de fonctionnalités. Vous serez invité de temps en temps à acheter une licence, que vous pourrez refuser si vous voulez. Bien sûr, si vous trouvez que Sublime augmente votre productivité et que vous l'appréciez vraiment, merci d'acheter une licence et de supporter son développement!
Commencez par télécharger une version de Sublime adaptées à votre système d'exploitation.
-
Tapez
Ctrl+
, ouvrez l'invite de commandes et rentrez les commandes suivantes:.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 'Merci de redémarrer Sublime Text pour finaliser l'installation'
Redémarrez Sublime text en fin d'installation. Vous devriez trouvez une option
Package Control
dans le menu "Preferences".Figure 1.7 Gestion de paquet dans Sublime
-
Pour installer GoSublime, SidebarEnhancements et Go Build, tapez
Ctrl+Shift+p
pour ouvrir Package Control, puis tapezpcip
(raccourci pour "Package Control: Install Package").Figure 1.8 Installer des paquets sous Sublime
Puis tapez "GoSublime", entrez OK pour installer le paquet, et répétez ces commandes pour installer SidebarEnhancements et Go Build. À nouveau, redémarrez l'éditeur quand l'installation s'achève.
-
Pour vérifier la réussite de l'installation, ouvrez Sublime, puis ouvrez le fichier
main.go
pour vérifier que la coloration syntaxique est correcte. Tapezimport
pour voir si le prompt de la complétion de code s'affiche. Après avoir tapéimport "fmt"
, tapezfmt.
juste aprèsimport
pour voir si oui ou non la complétion intelligente de code des fonctions a été activée avec succès.Si tout fonctionne correctement, vous êtes prêt.
Sinon, vérifiez à nouveau votre $PATH. Ouvrez un terminal, tapez
gocode
. S'il ne s'exécute pas, votre $PATH n'est pas configuré correctement.
Vim est un éditeur très populaire chez les programmeurs, qui est une évolution de son prédécesseur, Vi. Il a des fonctionnalités de complétion intelligente, compilation et navigation entre les erreurs.
Figure 1.8 Complétion intelligente pour Go sous Vim
-
Coloration syntaxique sous Go
cp -r $GOROOT/misc/vim/* ~/.vim/
-
Activer la coloration syntaxique
filetype plugin indent on syntax on
-
Installer gocode
go get -u github.com/nsf/gocode
gocode sera installé dans
$GOBIN
par défaut -
Configurer 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"
Explications sur la configuration de gocode:
propose-builtins: active ou non la complétion automatique; faux par défaut.
lib-path: gocode cherche uniquement les paquets dans
$GOPATH/pkg/$GOOS_$GOARCH
et$GOROOT/pkg/$GOOS_$GOARCH
. Ce paramètre peut-être utilisé pour ajouter des chemins additionnels. -
Félicitations! lancez
:e main.go
pour explorer le monde de Go!
Emacs est l'arme fatale. Ce n'est pas seulement un éditeur, mais aussi un IDE très puissant.
Figure 1.10 Panneau principal de l'éditeur Go d'Emacs
-
Coloration syntaxique
cp $GOROOT/misc/emacs/* ~/.emacs.d/
-
Installer gocode
go get -u github.com/nsf/gocode
gocode sera installé dans
$GOBIN
par défaut -
Configurer 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"
-
Installer l'Auto Completion
Téléchargement et décompression
~ make install DIR=$HOME/.emacs.d/auto-complete
Configurer ~/.emacs file
;;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)
Cliquez ce [lien](http://www.emacswiki.org/emacs/AutoComplete) pour plus de détails.
-
Configurer .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"))
-
Félicitations,vous avez fini! Speedbar est fermé par défaut - décommentez
;;(speedbar 1)
pour activer cette fonctionnalité, ou vous pouvez l'utiliser viaM-x speedbar
.
Eclipse est aussi un très bon outil de développement. Je vais vous montrer comment l'utiliser pour écrire des programmes Go.
Figure 1.1 Panneau principal d'Eclipse pour développer en Go
-
Téléchargez et installez Eclipse
-
Téléchargez goclipse
-
Téléchargez gocode
gocode sur Github.
https://github.com/nsf/gocode
Vous devez installer git sous Windows, généralement via msysgit
Installer gocode en ligne de commandes
go get -u github.com/nsf/gocode
Vous pouvez l'installer depuis les sources si vous préférez.
. 4. Téléchargez et installez MinGW 5. Configurez les extensions.
Windows->Préférences->Go
(1).Configurez le compilateur Go
![](images/1.4.eclipse2.png?raw=true)
Figure 1.12 Paramètres Go dans Eclipse
(2).Configurez gocode(optionnel), paramètrez le chemin gocode vers l'emplacement de gocode.exe.
![](images/1.4.eclipse3.png?raw=true)
Figure 1.13 Paramètres gocode
(3).Configurez gdb(optionnell), paramètrez le chemin de gdb vers l'emplacement de gdb.exe.
![](images/1.4.eclipse4.png?raw=true)
Figure 1.14 Paramètre gdb
- Vérifiez l'installation
Créez un nouveau projet Go et un fichier hello.go comme suit.
![](images/1.4.eclipse5.png?raw=true)
Figure 1.15 Créez un nouveau projet et fichier.
Testez l'installation comme suit (Vous avez besoin de taper la commande dans la console d'Eclipse).
![](images/1.4.eclipse6.png?raw=true)
Figure 1.16 Testez Go depuis Eclipse
Les développeurs Java sont familiers de cet IDE. Il supporte la coloration syntaxique et la complétion intelligente de code sous Go, via une extension.
-
Téléchargez IDEA, il n'y a aucune différence entre les éditions Ultimate et Community
-
Installer l'extension Go. Choisissez
File - Setting - Plugins
, puisBrowser repo
. -
Cherchez
golang
, double-cliquezdownload and install
et patientez jusqu'à la fin du téléchargement.Cliquez
Apply
, puis redémarrez. -
Maintenant vous pouvez créer un projet Go.
Entrez le chemin de votre sdk Go dans l'étape suivante - qui correspond à votre $GOROOT.
- Table des matières
- Section précédente: Commandes Go
- Section suivante: Résumé