wide

command module
v0.0.0-...-ef8be34 Latest Latest
Warning

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

Go to latest
Published: Nov 3, 2014 License: Apache-2.0 Imports: 19 Imported by: 0

README

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

  • 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


Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Configurations manipulations, all configurations (including user configurations) are stored in wide.json.
Configurations manipulations, all configurations (including user configurations) are stored in wide.json.
data
Editor manipulations.
Editor manipulations.
Event manipulations.
Event manipulations.
File tree manipulations.
File tree manipulations.
Internationalization manipulations.
Internationalization manipulations.
Notification manipulations.
Notification manipulations.
Build, run and go tool manipulations.
Build, run and go tool manipulations.
Session manipulations.
Session manipulations.
Shell.
Shell.
Utilities.
Utilities.

Jump to

Keyboard shortcuts

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