wide 0,2,0,1,10,1 travis-ci docker gulp npm

:fireworks: A Web-based IDE for Teams using Go programming language/Golang. 一个基于 Web 的 Go 语言 IDE。https://wide.b3log.org

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!

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

  • 关于 Wide 的产品定位,请看这里,并欢迎参与讨论~
  • 加入黑客派,与其他程序员、设计师共同成长!

Introduction

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

Hello, 世界

Authors

Daniel and Vanessa are the main authors of Wide, here are all contributors.

Wide 的主要作者是 DanielVanessa,所有贡献者可以在这里看到。

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

  • [X] Code Highlight, Folding: Go/HTML/JavaScript/Markdown etc.
  • [X] Autocomplete: Go/HTML etc.
  • [X] Format: Go/HTML/JSON etc.
  • [X] Build & Run
  • [X] Multiplayer: a real team development experience
  • [X] Navigation, Jump to declaration, Find usages, File search etc.
  • [X] Shell: run command on the server
  • [X] Web development: HTML/JS/CSS editor with Emmet integrated
  • [X] Go tool: go get/install/fmt etc.
  • [X] File Import & Export
  • [X] Themes: editor and UI adjust, respectively
  • [X] Cross-Compilation
  • [ ] 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 * Cross-Compilation

Cross-Compilation

  • Playground Playground

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(gotools)
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/visualfc/gotools github.com/nsf/gocode github.com/bradfitz/goimports
  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 page, even which you made
  • If you want to use this software for commercial purpose, please mail to [email protected] for a commercial license request
  • Copyright © b3log.org, all rights reserved

Credits

Wide is made possible by the following open source projects.


Related Repositories

PathPicker

PathPicker

PathPicker accepts a wide range of input -- output from git commands, grep results, searches -- pretty much anything.After parsing the input, PathPicker presents you with a nice UI to select which files you're interested in. After that you can open them i ...

Old-Deleted-FullScreenMario

Old-Deleted-FullScreenMario

An HTML5 remake of the original Super Mario Brothers - expanded for wide screens. ...

noUiSlider

noUiSlider

noUiSlider is a lightweight JavaScript range slider library. It offers a wide selection of options and settings, and is compatible with a ton of (touch) devices, including those running iOS, Android, Windows 8/8.1/10, Windows Phone 8.1 and Windows Mobile ...

wide

wide

:fireworks: A Web-based IDE for Teams using Go programming language/Golang. 一个基于 Web 的 Go 语言 IDE。https://wide.b3log.org ...

TWMessageBarManager

TWMessageBarManager

An iOS manager for presenting system-wide notifications via a dropdown message bar. ...


Top Contributors

88250 Vanessa219 mattn muyuballs shiyou0130011 gitwillsky admpub AvivRubys gaomd PaladinTyrion thewhitetulip tjyang gitter-badger codeskyblue youymi

Dependencies

package version
dev gulp ^3.9.1
gulp-concat ^2.6.1
gulp-minify-css ^1.2.4
gulp-sourcemaps ^2.6.0
gulp-uglify ^2.1.2

Releases

-   1.5.1 zip tar
-   1.5.0 zip tar
-   1.4.0 zip tar
-   1.3.0 zip tar
-   1.2.0 zip tar
-   1.1.0 zip tar
-   1.0.0 zip tar