| 
				
					
						
							 | 
			||
|---|---|---|
| conf | ||
| data | ||
| doc | ||
| editor | ||
| event | ||
| file | ||
| i18n | ||
| notification | ||
| output | ||
| session | ||
| shell | ||
| static | ||
| util | ||
| view | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| main.go | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	Wide 
Intro
A Web 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 for extensions
 - Easy integration 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 from sources
- Downloads source
 - Gets dependencies with
go get -ugo get -u github.com/88250/ide_stubgo get -u github.com/nsf/gocode
 - Compiles wide with 
go build - Configures 
conf/wide.json - Runs the executable 
wideorwide.exe 
Known Issues
License
Copyright (c) 2014, B3log Team (http://b3log.org)
Licensed under the Apache License 2.0.
Credits
			
		

