這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
開發環境的必要特徵
專案管理
快速檔案跳轉
自動語法檢查
自動補全
尋找定義
啟動速度快
如果自己有需求的話外掛程式可以隨便寫
靈活的回合組態
大環境
OSX
GO 1.4
HomeBrew
go 環境安裝
這一部分是最重要的,如果沒有它,每次build的時候出現 too many errors 心裡真的是非常難過的。
環境配置:(golint,gooracle,mercurial)
安裝mercurial: brew install mercurial
這個東西是用來做版本管理的,也是下載代碼的工具類似git,貌似google的項目用的挺多的。
安裝golint:
|
$ go get github.com/golang/lint$ go install github.com/golang/lint |
安裝gooracle
|
go get code.google.com/p/go.tools/cmd/oracle |
安裝goimport
|
go get golang.org/x/tools/cmd/goimports |
安裝gocode
|
go get -u github.com/nsf/gocode |
安裝 godef
|
go get -v code.google.com/p/rog-go/exp/cmd/godefgo install -v code.google.com/p/rog-go/exp/cmd/godef |
安裝環境的時候經常會出現下載不下來的問題,大概是我網路不好吧。串連google經常出現問題。
解決方案:
golang中國的下載頻道中有一個第三方包的下載工具,只要輸入地址之後人家會給你提供下載tar包的。
放到gopath中就ok了。
此步驟只能替代go get的步驟,最後還是需要go install
go install 之後會在 $GOPATH/bin/ 中出現各種工具檔案
最後不要忘記複製上面的命令到 $GOROOT/bin/下面
gocode 提供代碼補全
godef 代碼跳轉
gofmt 自動代碼整理
golint 代碼語法檢查
goimports 自動整理imports
oracle 代碼callgraph查詢(plugin中還在todolist中,但是不配置一直報錯。實在煩。)
最後的配置結果(安裝完之後 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 |
沒有紅色的行就沒有問題了。
專案管理,自動檔案跳轉
外掛程式:project-manager
這個外掛程式是非常hot的,在atom.io的首頁上排名還是非常靠前的。
使用細節:
配合tree view ( cmd - \) 開啟關閉project file
搜尋專案檔 ( cmd -t )
輸入的時候按照順序輸入關鍵字
比如說 user模組的controll中的go原始碼
搜尋的時候可以使用多個快速鍵 =》 user controll go
就可以準確的找到原始碼了
開啟項目列表 ( ctrl-cmd-p )
然後就會顯示出來一個項目列表斷行符號就可以開啟項目。
總結:
感覺這個外掛程式的treeview用途的確不是很大,因為正常項目的專案檔會很多。
不過是快速開啟項目(檔案夾)是非常方便的,配合快速開啟檔案還是相當爽的。
按快速鍵之後的效果展示:
自動文法檢,自動補全
外掛程式go-plus,autocomplete-plus(dependance),gocode
使用 apm install 安裝就可以了。速度還可以。
使用細節 在儲存的時候
會自動補上imports
會自動整理代碼
比如說 a:=5 會變成 a := 5
兩個空行自動變成一個空格
lint自動檢查語法錯誤(go build 的錯誤都會顯示出來)
vet會自動檢查文法拼字建議
函數,結構體 會提示補上注釋。
比如說會提示你函數前面需要加入godoc類型的注釋: // functionname
注釋的第一行需要使用雙斜杠注釋+空格+函數名+空格+簡短的函數功能說明。
使用細節: 在編輯的時候
go-plus會配合autocomplete-plus會自動補全包名字(tab補全,斷行符號不行,這個真心舒服)
包名.之後輸入方法名開頭幾個字母會給出補全建議。
安裝之後的示範(類似go-plus官方示範)
gocode 外掛程式自動補全示範
這個外掛程式繼承自autocomplete,因為年久失修。api用的是老版本,所以一直都會出現api警告。(我是實用主義,視而不見)
gocode如果找不到就進入代碼找到檔案autocomplete-view.coffee 中105行寫成絕對路徑就肯定沒有問題了。
綁定快速鍵,因為這個外掛程式沒有綁定快速鍵的檔案(keymap)所以需要在keymap.cson下自己手動綁定配置如下:
|
'.active.pane':'ctrl-;': 'gocode:toggle' |
效果示範
尋找定義
外掛程式 godef
使用細節:
游標在目標代碼上的時候,使用快速鍵ctrl-k跳轉到目標代碼的定義代碼上。
靈活的運行
安裝外掛程式atom-runner
修改原始碼中的go run運行為go: 'sh [絕對路徑到你的全域run腳上] '+atom.project.getRepo().project.path
指令碼的 $1 會是你項目啟動並執行路徑。然後你的所有項目都可以添加一個run.sh 來指定一個構建啟動並執行方案。
做完之後不管當前在查看什麼檔案都可以運行整個項目。
其他語言也可以這樣做。畢竟單個檔案的項目不是很常見(開發的時候)
總結
我這裡只是總結了我用的所有的golang相關的atom外掛程式。
要相信golang使用編輯器就夠用的事實了。因為 go tool 實在是太好用了。
我的key map
cmd-d duplicate line
cmd-w 關閉標籤
cmd-r 檔案內的標籤列表
cmd-e 使用選中的內容做搜尋的pattern
shift-cmd-f project內部搜尋,這個非常實用。command 配置(keymap.cson)
>
|
'.platform-darwin atom-text-editor': 'shift-cmd-D': 'find-and-replace:select-next' |