Update README.md
This commit is contained in:
parent
87c205b086
commit
261583672d
132
README.md
132
README.md
|
@ -5,35 +5,36 @@
|
||||||
A <b>W</b>eb <b>IDE</b> IDE for Teams using Golang.
|
A <b>W</b>eb <b>IDE</b> IDE for Teams using Golang.
|
||||||
|
|
||||||
## Motivation
|
## 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
|
* **Team** IDE:
|
||||||
* Unified environment: server unified development environment configuration, the developer machine without any additional configuration
|
* Safe and reliable: the project source code stored on the server in real time, the developer's machine crashes without losing any source code
|
||||||
* Out of the box: 5 minutes to setup a server then open browser to develop, debug
|
* Unified environment: server unified development environment configuration, the developer machine without any additional configuration
|
||||||
* Version Control: each developer has its own source code repository, easy sync with the trunk
|
* Out of the box: 5 minutes to setup a server then open browser to develop, debug
|
||||||
* **Web based** IDE:
|
* Version Control: each developer has its own source code repository, easy sync with the trunk
|
||||||
* Developer needs a browser only
|
* **Web based** IDE:
|
||||||
* Cross-platform, even on mobile devices
|
* Developer needs a browser only
|
||||||
* For the geeks
|
* Cross-platform, even on mobile devices
|
||||||
* A try for commercial-open source: versions customized for enterprises, close to their development work flows respectively
|
* For the geeks
|
||||||
* Currently more popular Go IDE has some defects or regrets:
|
* A try for commercial-open source: versions customized for enterprises, close to their development work flows respectively
|
||||||
* Text editor (vim/emacs/sublime/Atom, etc.): For the Go newbie is too complex
|
* Currently more popular Go IDE has some defects or regrets:
|
||||||
* Plug-in (goclipse, etc.): the need for the original IDE support, not professional
|
* Text editor (vim/emacs/sublime/Atom, etc.): For the Go newbie is too complex
|
||||||
* LiteIDE: no modern user interface :p
|
* Plug-in (goclipse, etc.): the need for the original IDE support, not professional
|
||||||
* No team development experience
|
* LiteIDE: no modern user interface :p
|
||||||
* There are a few of GO IDEs, and no one developed by Go itself, this is a nice try
|
* No team development experience
|
||||||
|
* There are a few of GO IDEs, and no one developed by Go itself, this is a nice try
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
* Code Highlight, Folding: Go/HTML/JavaScript/Markdown etc.
|
* Code Highlight, Folding: Go/HTML/JavaScript/Markdown etc.
|
||||||
* Autocomplete: Go/HTML etc.
|
* Autocomplete: Go/HTML etc.
|
||||||
* Format: Go/HTML/JSON etc.
|
* Format: Go/HTML/JSON etc.
|
||||||
* Run & Debug: run/debug multiple processes at the same time
|
* Run & Debug: run/debug multiple processes at the same time
|
||||||
* Multiplayer: a real team development experience
|
* Multiplayer: a real team development experience
|
||||||
* Navigation, Jump to declaration, Find usages, File search etc.
|
* Navigation, Jump to declaration, Find usages, File search etc.
|
||||||
* Shell: run command on the server
|
* Shell: run command on the server
|
||||||
* Git integration: git command on the web
|
* Git integration: git command on the web
|
||||||
* Web development: Frontend devlopment (HTML/JS/CSS) all in one
|
* Web development: Frontend devlopment (HTML/JS/CSS) all in one
|
||||||
* Go tool: go get/install/fmt etc.
|
* Go tool: go get/install/fmt etc.
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
|
@ -42,69 +43,74 @@ A <b>W</b>eb <b>IDE</b> IDE for Teams using Golang.
|
||||||
![Build & Run](https://cloud.githubusercontent.com/assets/873584/4389219/3642bc62-43f3-11e4-8d1f-06d7aaf22784.png)
|
![Build & Run](https://cloud.githubusercontent.com/assets/873584/4389219/3642bc62-43f3-11e4-8d1f-06d7aaf22784.png)
|
||||||
|
|
||||||
|
|
||||||
* A browser tab corresponds to a Wide session
|
* A browser tab corresponds to a Wide session
|
||||||
* Execution output push via WebSocket
|
* Execution output push via WebSocket
|
||||||
|
|
||||||
|
|
||||||
1. Browser sends ````Build```` request
|
1. Browser sends ````Build```` request
|
||||||
2. Server executes ````go build```` command via ````os/exec````<br/>
|
2. Server executes ````go build```` command via ````os/exec````<br/>
|
||||||
2.1. Generates a executable file
|
2.1. Generates a executable file
|
||||||
3. Browser sends ````Run```` request
|
3. Browser sends ````Run```` request
|
||||||
4. Server executes the file via ````os/exec````<br/>
|
4. Server executes the file via ````os/exec````<br/>
|
||||||
4.1. A running process<br/>
|
4.1. A running process<br/>
|
||||||
4.2. Execution output push via WebSocket channel
|
4.2. Execution output push via WebSocket channel
|
||||||
5. Browser renders with callback function ````ws.onmessage````
|
5. Browser renders with callback function ````ws.onmessage````
|
||||||
|
|
||||||
### Code Assist
|
### Code Assist
|
||||||
|
|
||||||
![Code Assist](https://cloud.githubusercontent.com/assets/873584/4399135/3b80c21c-4463-11e4-8e94-7f7e8d12a4df.png)
|
![Code Assist](https://cloud.githubusercontent.com/assets/873584/4399135/3b80c21c-4463-11e4-8e94-7f7e8d12a4df.png)
|
||||||
|
|
||||||
|
|
||||||
* Autocompletion
|
* Autocompletion
|
||||||
* Find Usages
|
* Find Usages
|
||||||
|
|
||||||
|
|
||||||
1. Browser sends code assist request
|
1. Browser sends code assist request
|
||||||
2. Handler gets user workspace of the request with HTTP session
|
2. Handler gets user workspace of the request with HTTP session
|
||||||
3. Server executes ````gocode````/````ide_stub````<br/>
|
3. Server executes ````gocode````/````ide_stub````<br/>
|
||||||
3.1 Sets environment variables (e.g. ${GOPATH})<br/>
|
3.1 Sets environment variables (e.g. ${GOPATH})<br/>
|
||||||
3.2 ````gocode```` with ````lib-path```` parameter
|
3.2 ````gocode```` with ````lib-path```` parameter
|
||||||
|
|
||||||
## Documents
|
## Documents
|
||||||
|
|
||||||
* [用户指南](http://88250.gitbooks.io/wide-user-guide/zh-cn/index.html)
|
* [用户指南](http://88250.gitbooks.io/wide-user-guide/zh-cn/index.html)
|
||||||
* [开发指南](http://88250.gitbooks.io/wide-dev-guide/zh-cn/index.html)
|
* [开发指南](http://88250.gitbooks.io/wide-dev-guide/zh-cn/index.html)
|
||||||
|
|
||||||
## Demos
|
## Demos
|
||||||
|
|
||||||
* 20140913, png ![](http://b3log.org/wide/demo/20140913.png)
|
* 20140913, png ![](http://b3log.org/wide/demo/20140913.png)
|
||||||
|
|
||||||
### Olds
|
### Olds
|
||||||
* [20140910, png](http://b3log.org/wide/demo/20140910.png)
|
|
||||||
* [20140823, swf](http://b3log.org/wide/demo/20140823.html)
|
* [20140910, png](http://b3log.org/wide/demo/20140910.png)
|
||||||
|
* [20140823, swf](http://b3log.org/wide/demo/20140823.html)
|
||||||
|
|
||||||
## Setup from sources
|
## Setup from sources
|
||||||
1. Downloads source
|
|
||||||
2. Gets dependencies with
|
1. Downloads source
|
||||||
* `go get -u`
|
2. Gets dependencies with
|
||||||
* `go get -u github.com/88250/ide_stub`
|
* `go get -u`
|
||||||
* `go get -u github.com/nsf/gocode`
|
* `go get -u github.com/88250/ide_stub`
|
||||||
3. Compiles wide with `go build`
|
* `go get -u github.com/nsf/gocode`
|
||||||
4. Configures `conf/wide.json`
|
3. Compiles wide with `go build`
|
||||||
5. Runs the executable `wide` or `wide.exe`
|
4. Configures `conf/wide.json`
|
||||||
|
5. Runs the executable `wide` or `wide.exe`
|
||||||
|
|
||||||
## Known Issues
|
## Known Issues
|
||||||
* [Shell is not available on Windows](https://github.com/b3log/wide/issues/32)
|
|
||||||
|
* [Shell is not available on Windows](https://github.com/b3log/wide/issues/32)
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Copyright (c) 2014, B3log Team (http://b3log.org)
|
Copyright (c) 2014, B3log Team (http://b3log.org)
|
||||||
|
|
||||||
Licensed under the [Apache License 2.0](https://github.com/b3log/wide/blob/master/LICENSE).
|
Licensed under the [Apache License 2.0](https://github.com/b3log/wide/blob/master/LICENSE).
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
* [golang](http://golang.org)
|
|
||||||
* [CodeMirror](https://github.com/marijnh/CodeMirror)
|
* [golang](http://golang.org)
|
||||||
* [zTree](https://github.com/zTree/zTree_v3)
|
* [CodeMirror](https://github.com/marijnh/CodeMirror)
|
||||||
* [LiteIDE](https://github.com/visualfc/liteide)
|
* [zTree](https://github.com/zTree/zTree_v3)
|
||||||
* [gocode](https://github.com/nsf/gocode)
|
* [LiteIDE](https://github.com/visualfc/liteide)
|
||||||
* [Gorilla](https://github.com/gorilla)
|
* [gocode](https://github.com/nsf/gocode)
|
||||||
|
* [Gorilla](https://github.com/gorilla)
|
||||||
|
|
Loading…
Reference in New Issue