Go to file
Liang Ding 39c85c03a1 Fix Playground's gutter overflow 2015-03-25 16:00:59 +08:00
conf upgrade CodeMirror 2015-03-24 17:27:39 +08:00
doc update document links 2015-03-23 16:55:09 +08:00
editor fix #217 2015-03-10 11:49:38 +08:00
event release gorutines 2015-03-19 11:42:52 +08:00
file Fix #222 2015-03-21 14:39:26 +08:00
i18n Fix #222 2015-03-21 14:39:26 +08:00
log update license header 2015-01-18 13:59:10 +08:00
notification update license header 2015-01-18 13:59:10 +08:00
output channel err logging 2015-03-20 16:49:58 +08:00
playground channel err logging 2015-03-20 16:49:58 +08:00
scm/git logging 2015-03-20 17:41:49 +08:00
session reduce gorutines 2015-03-23 15:30:52 +08:00
shell update license header 2015-01-18 13:59:10 +08:00
static Fix Playground's gutter overflow 2015-03-25 16:00:59 +08:00
util Fix #222 2015-03-21 14:39:26 +08:00
views Fix Playground's gutter overflow 2015-03-25 16:00:59 +08:00
.gitignore . 2014-11-16 21:13:16 +08:00
.header.json update license header 2015-01-18 13:59:10 +08:00
.header.txt . 2014-11-13 21:40:11 +08:00
.travis.yml . 2014-12-20 20:25:14 +08:00
Dockerfile . 2015-01-14 11:49:11 +08:00
LICENSE i18n 2014-10-23 23:14:34 +08:00
README.md Update README.md 2015-03-24 21:18:55 +08:00
TERMS.md terms 2015-01-28 17:41:14 +08:00
coverage.sh . 2014-12-20 20:24:45 +08:00
main.go Fix #222 2015-03-21 14:39:26 +08:00
pkg.sh package tool 2015-03-09 11:58:13 +08:00

README.md

Wide Build Status Coverage Status Apache License API Documentation Download

Have a try first, then download and setup it on your local area network, enjoy yourself!

先试试我们搭建好的在线服务,你可以在这里下载并在本地环境运行,然后邀请小伙伴们加入吧!

Introduction

A Web-based IDE for Teams using Go programming language/Golang.

Hello, 世界

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.
  • Build & Run
  • Multiplayer: a real team development experience
  • Navigation, Jump to declaration, Find usages, File search etc.
  • Shell: run command on the server
  • Web development: HTML/JS/CSS editor with Emmet integrated
  • Go tool: go get/install/fmt etc.
  • File Import & Export
  • Themes: editor and UI adjust, respectively
  • Debug
  • Git integration: git command on the web

Screenshots

  • Overview Overview
  • Goto File Goto File
  • Autocomplete Autocomplete
  • Theme 4
  • Show Expression Info Show Expression Info
  • Build Error Info Build Error Info
  • Git Clone
    Git Clone

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/Jump To Declaration/etc.

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

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 https://github.com/b3log/wide
  2. Get dependencies with
    • go get
    • go get github.com/88250/ide_stub
    • go get github.com/nsf/gocode
  3. Compile wide with go build

Docker

  1. Get image: sudo docker pull 88250/wide:latest
  2. Run: sudo docker run -p 127.0.0.1:7070:7070 88250/wide:latest ./wide -docker=true -channel=ws://127.0.0.1:7070
  3. Open browser: http://127.0.0.1:7070

Known Issues

Terms

  • This software is open sourced under the Apache License 2.0
  • You can not get rid of the "Powered by B3log" from any pages, even the pages are developed by you
  • If you want to use this software for commercial purpose, please mail to support@liuyun.io for request a commercial license
  • Copyright (c) b3log.org, all rights reserved

Credits