wide

command module
v0.0.0-...-43a0c9e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2015 License: Apache-2.0 Imports: 24 Imported by: 0

README

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!

Intro

A Web-based IDE for Teams using 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: Frontend devlopment (HTML/JS/CSS) all in one
  • Go tool: go get/install/fmt etc.
  • File Import & Export
  • Themes
  • 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
  • About About

Architecture

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
  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 {ip}:{port}:7070 88250/wide:latest ./wide -docker=true -channel=ws://{ip}:{port}

Known Issues

License

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

Licensed under the Apache License 2.0.

Credits


Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package conf includes configurations related manipulations.
Package conf includes configurations related manipulations.
Package editor includes editor related manipulations.
Package editor includes editor related manipulations.
Package event includes event related manipulations.
Package event includes event related manipulations.
Package file includes file related manipulations.
Package file includes file related manipulations.
Package i18n includes internationalization related manipulations.
Package i18n includes internationalization related manipulations.
Package log includes logging related manipulations.
Package log includes logging related manipulations.
Package notification includes notification related manipulations.
Package notification includes notification related manipulations.
Package output includes build, run and go tool related manipulations.
Package output includes build, run and go tool related manipulations.
Package session includes session related manipulations.
Package session includes session related manipulations.
Package shell include shell related mainipulations.
Package shell include shell related mainipulations.
Package util includes common utilities.
Package util includes common utilities.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL