|  | ||
|---|---|---|
| conf | ||
| doc | ||
| editor | ||
| event | ||
| file | ||
| i18n | ||
| notification | ||
| output | ||
| session | ||
| shell | ||
| static | ||
| util | ||
| views | ||
| .gitignore | ||
| .gobuild.yml | ||
| .header.json | ||
| .header.txt | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
| main.go | ||
| pkg.sh | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	Wide 
Have a try first!
Intro
A Web-based IDE for Teams using Golang.
 
Motivation
- Team IDE:
- Safe and reliable: the project source code stored on the server in real time, the developer's machine crashes without losing any source code
- Unified environment: server unified development environment configuration, the developer machine without any additional configuration
- Out of the box: 5 minutes to setup a server then open browser to develop, debug
- Version Control: each developer has its own source code repository, easy sync with the trunk
 
- Web-based IDE:
- Developer needs a browser only
- Cross-platform, even on mobile devices
- Easy to extend
- Easy to integrate with other systems
- For the geeks
 
- A try for commercial-open source: versions customized for enterprises, close to their development work flows respectively
- Currently more popular Go IDE has some defects or regrets:
- Text editor (vim/emacs/sublime/Atom, etc.): For the Go newbie is too complex
- Plug-in (goclipse, etc.): the need for the original IDE support, not professional
- LiteIDE: no modern user interface :p
- No team development experience
 
- There are a few of GO IDEs, and no one developed by Go itself, this is a nice try
Features
- Code Highlight, Folding: Go/HTML/JavaScript/Markdown etc.
- Autocomplete: Go/HTML etc.
- Format: Go/HTML/JSON etc.
- Run & Debug: run/debug multiple processes at the same time
- Multiplayer: a real team development experience
- Navigation, Jump to declaration, Find usages, File search etc.
- Shell: run command on the server
- Git integration: git command on the web
- Web development: Frontend devlopment (HTML/JS/CSS) all in one
- Go tool: go get/install/fmt etc.
Architecture
Build & Run
- A browser tab corresponds to a Wide session
- Execution output push via WebSocket
Flow:
- Browser sends Buildrequest
- Server executes go buildcommand viaos/exec
 2.1. Generates a executable file
- Browser sends Runrequest
- Server executes the file via os/exec
 4.1. A running process
 4.2. Execution output push via WebSocket channel
- Browser renders with callback function ws.onmessage
Code Assist
- Autocompletion
- Find Usages
Flow:
- Browser sends code assist request
- Handler gets user workspace of the request with HTTP session
- Server executes gocode/ide_stub
 3.1 Sets environment variables (e.g. ${GOPATH})
 3.2gocodewithlib-pathparameter
Documents
Demos
Olds
Setup
Download Binary
We have provided OS-specific executable binary as follows:
- linux-amd64/386
- windows-amd64/386
- darwin-amd64/386
Download HERE!
Build Wide for yourself
- Download source or by git clone
- Get dependencies with
- go get
- go get github.com/88250/ide_stub
- go get github.com/nsf/gocode
 
- Compile wide with go build
Docker
- Get image: sudo docker pull 88250/wide:latest
- Run: sudo docker run -u wide -p {ip}:{port}:7070 88250/wide:latest ./wide -docker=true -channel=ws://{ip}:{port}
Known Issues
License
Copyright (c) 2014, B3log Team (http://b3log.org)
Licensed under the Apache License 2.0.
Credits
 
			
		

