Go to file
codeskyblue 44bdcb9fb5 fix create user workspace failed in linux 2014-11-12 10:41:27 +08:00
conf fix create user workspace failed in linux 2014-11-12 10:41:27 +08:00
data 💛 Fix #131 2014-11-08 14:28:41 +08:00
doc Update README.md 2014-09-18 16:19:38 +08:00
editor viewport enhancement 2014-11-05 00:27:43 +08:00
event Fix #119 2014-10-29 18:15:18 +08:00
file Fix #138 2014-11-07 23:11:37 +08:00
i18n 🆎 #135 2014-11-10 11:34:55 +08:00
notification Fix #74 2014-11-02 15:44:24 +08:00
output . 2014-11-11 23:55:23 +08:00
session Fix #74 2014-11-02 15:44:24 +08:00
shell Fix #74 2014-11-02 15:44:24 +08:00
static Shift-Alt-Down & Shift-Alt-Up 2014-11-10 18:03:26 +08:00
util Update utf8reader.go 2014-11-07 21:33:44 +08:00
views 🆎 #135 2014-11-10 11:34:55 +08:00
.gitignore package tool 2014-11-03 14:24:49 +08:00
.gobuild.yml . 2014-10-24 21:13:05 +08:00
LICENSE i18n 2014-10-23 23:14:34 +08:00
README.md Update README.md 2014-11-01 20:48:26 +08:00
main.go #138 2014-11-07 17:22:20 +08:00
pkg.sh 2014-11-06 22:54:37 +08:00

README.md

Wide Build Status

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

Build & Run

  • A browser tab corresponds to a Wide session
  • Execution output push via WebSocket

Flow:

  1. Browser sends Build request
  2. Server executes go build command via os/exec
    2.1. Generates a executable file
  3. Browser sends Run request
  4. Server executes the file via os/exec
    4.1. A running process
    4.2. Execution output push via WebSocket channel
  5. Browser renders with callback function ws.onmessage

Code Assist

Code Assist

  • Autocompletion
  • Find Usages

Flow:

  1. Browser sends code assist request
  2. Handler gets user workspace of the request with HTTP session
  3. Server executes gocode/ide_stub
    3.1 Sets environment variables (e.g. ${GOPATH})
    3.2 gocode with lib-path parameter

Documents

Demos

  • 20141024-1.0.0, png

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

  1. Download source or by git clone
  2. Get dependencies with
    • go get -u
    • go get -u github.com/88250/ide_stub
    • go get -u github.com/nsf/gocode
  3. Compile wide with go build

Known Issues

License

Copyright (c) 2014, B3log Team (http://b3log.org)

Licensed under the Apache License 2.0.

Credits