golab was a Go IDE for Linux.
This project is no longer maintained and might not build due to chganges in dependency projects.
The author (mb0) does use neovim and is quite happy with it, while missing the convenient auto install and test facilities. The ot (operation transformation) package is worth a look and a good start for any collaborative text editing project, there is also a utf-8 based version with js client that can be shared.
Requires Linux and Go 1.1.
go get github.com/mb0/lab/golab
echo 'yay! magic!'
golab
watches all files under your goroot and gopath (go help gopath
).
It automatically installs and tests a list of packages specified by the -work
flag and prints colored reports to stdout.
Flag -work
specifies a path list to the packages you are working on.
Multiple paths can be seperated by a colon :
.
The default ./...
uses the current directory and all it child packages.
Example:
cd $GOPATH/src/github.com/mb0
golab -work=../garyburd/go-websocket/websocket:./lab/...
golab -http
starts a web interface for reports and collaborative editing of text files.
Flag -addr=localhost:8910
specifies the http address.
Example:
cd $GOPATH/src
golab -http -addr=:80 -work=github.com/mb0/lab/...
Features:
- Report view for go errors and test failures with links to sources.
- Ace editor with gentle highlights and error markers for go, js and css.
- Document collaboration with operational transformation.
- External filesystem changes to open documents are merged.
- godoc Ctrl+Alt+Click on imports in go source files opens the doc view.
- gofmt Ctrl+Shift+F changes the document (does not save to disk)
- gocode Ctrl+Space shows gocode completion proposals if installed.
I recommend using the Chrome browser, because the visual feedback seems faster than other browsers.
Yes please!
golab is BSD licensed, Copyright (c) 2013 Martin Schnabel
Server code attributions
- Go (c) The Go Authors (BSD License)
- go-websocket (c) Gary Burd (Apache License 2.0)
Client code and asset attributions
- require.js (c) The Dojo Foundation (BSD/MIT License)
- json2.js by Douglas Crockford (public domain)
- Underscore (c) Jeremy Ashkenas (MIT License)
- Zepto (c) Thomas Fuchs (MIT License)
- Backbone (c) Jeremy Ashkenas (MIT License)
- Ace (c) Ajax.org B.V. (BSD License)
- Font Awesome by Dave Gandy (SIL, MIT and CC BY 3.0 License)
- Qunit (c) jQuery Foundation and others (MIT License)
Recycled code attribution // was easier than adapting to golab
- ot.js (c) Tim Baumann (MIT License)