Essential features of the development environment
Project Management
Quick file Jump
Automatic grammar checking
Auto-complete
Find definition
Fast Start-up speed
If you have a need, plug-ins can be written casually
Flexible Run configurations
Big environment
Os x
GO 1.4
HomeBrew
Go Environment installation
This part is the most important, if without it, each build when the appearance of too many errors heart really is very sad.
Environment configuration: (golint,gooracle,mercurial)
Installing Mercurial:brew Install Mercurial
This thing is used for versioning, but also a tool to download the code similar to Git, it seems that Google's projects are very much.
Install Golint:
|
$ go get github.com/golang/lint$ go install github.com/golang/lint |
Installing Gooracle
|
Go get code.google.com/p/go.tools/cmd/oracle |
Installing Goimport
|
Go get golang.org/x/tools/cmd/goimports |
Installing Gocode
|
Go get-u github.com/nsf/gocode |
Installing Godef
|
Go get-v code.google.com/p/rog-go/exp/cmd/godefgo install-v code.google.com/p/rog-go/exp/cmd/godef |
-
When installing the environment, there will always be a download problem, probably my network is not good. There are often problems connecting to Google.
Solution:
Golang China's download channel has a third-party package download tool, as long as the input address will be provided to you to download the tar package. The
is ok when put into the gopath.
This step can only be used to override the go get step, and finally go to install
-
The various tool files appear in $GOPATH/bin/
after go install
Finally don't forget to copy the above command Under $GOROOT/bin/
-
Gocode provide code completion
-
Godef code Jump
-
Gofmt Automatic code collation
-
Golint code Syntax check
-
Goimports Auto-organize imports
- P>oracle Code callgraph query (plugin is still in ToDoList, but not configured always error. Really annoying.
-
Final configuration results (after installation package->go plus->display Go information)
|
Cover Tool:/usr/local/go/pkg/tool/darwin_amd64/covervet tool:/usr/local/go/pkg/tool/darwin_amd64/vetformat tool:/ Users/li-jianying/git/bin/goimportslint Tool:/usr/local/go/bin/golintgocode tool:/users/li-jianying/git/bin/ Gocodegocode status:enabledoracle Tool:/users/li-jianying/git/bin/oraclegit:/usr/bin/gitmercurial:/usr/local/ Cellar/mercurial/3.2.1/bin/hgpath:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin |
There is no problem without a red line.
Project management, automatic file jump
Plugin: Project-manager
This plugin is very hot, in the Atom.io of the first page ranking or very forward.
Usage Details:
( cmd - \)
Close Project file with tree view open
Search for project files( cmd -t )
Enter the keywords in the order they are entered
For example, the go source code in the user module's controll
Multiple shortcut keys can be used when searching = "User controll Go"
We can find the source code exactly.
Open Project List( ctrl-cmd-p )
Then it will show a list of items. Enter to open the project.
Summarize:
The fact that the TreeView uses this plugin is not very large, because there are a lot of project files for normal projects.
It's easy to open items (folders) quickly, and it's pretty cool to work with quick open files.
Press the shortcut key after the effect shows:
Automatic grammar checking, auto-completion
Plugin Go-plus,autocomplete-plus (dependance), Gocode
Install with APM installation. Speed is also possible.
Use details at the time of saving
will automatically fill in imports
will automatically organize the code
For example, A:=5 will become a: = 5
Two blank lines automatically become a space
Lint automatically check for syntax errors (go build errors will be displayed)
Vet will automatically check grammar spelling suggestions
The function, the structure realizes the hint to fill the comment.
For example, you will be prompted to add a Godoc type comment before the function://functionname
The first line of the comment needs to use a double slash comment + space + function name + space + Short function function description.
Usage Details: at the time of editing
Go-plus will cooperate with Autocomplete-plus will automatically fill the whole Package name (tab completion, enter No, this is really comfortable)
The package name. Then the first few letters of the input method name give the completion advice.
Post-installation demo (similar to go-plus official demo)
Gocode Plugin Auto Complement demo
This plugin inherits from AutoComplete because it is in disrepair. The API has an older version, so API warnings always appear. (I'm a pragmatic, blind eye)
Gocode if it is not found, enter the code to find the file Autocomplete-view.coffee 105 lines in the absolute path is certainly no problem.
Bind shortcut keys, because this plugin does not bind the shortcut key files (keymap) so need to Keymap.cson under the manual binding configuration as follows:
|
'. Active.pane ': ' Ctrl; ': ' Gocode:toggle ' |
Effect Demo
Find definition
Plugin Godef
Usage Details:
When the cursor is on the target code, use the shortcut key ctrl-k
to jump to the definition code of the target code.
Flexible operation
Installing the plugin Atom-runner
Modify the go run in the source code asgo: ‘sh [绝对路径到你的全局run脚上] ‘+atom.project.getRepo().project.path
The script will be the path to your project's run. Then all of your projects can add a run.sh to specify a scenario for the build to run.
When you're done, you can run the entire project regardless of what files are currently being viewed.
Other languages can do the same. After all, a single file project is not very common (at the time of development)
Summarize
I'm just summarizing all the Golang-related atom plugins I've used.
Believe that Golang use the editor is enough. Because go tool
it is very useful.
My key map
cmd-d
Duplicate line
cmd-w
Close Label
cmd-r
List of tags within a file
cmd-e
Use the selected content to do the pattern of the search
shift-cmd-f
Project internal search, this is very practical. Command Configuration (Keymap.cson)
>
|
'. Platform-darwin atom-text-editor ': ' shift-cmd-d ': ' Find-and-replace:select-next ' |
Golang Environment Configuration Recommendations