🎆 一款基于 Web 的 Go 语言 IDE。https://hacpai.com/tag/wide
Clone or download
Permalink
Failed to load latest commit information.
.github/ISSUE_TEMPLATE :octocat: 加入 GitHub Issue 模板 Oct 7, 2018
conf 🔒 Update external URL using SSL Mar 12, 2018
doc update document links Mar 23, 2015
editor 🔒 Update external URL using SSL Mar 12, 2018
event 🔒 Update external URL using SSL Mar 12, 2018
file 🔒 Update external URL using SSL Mar 12, 2018
i18n 🎨 Fix #334 Mar 13, 2018
log 🔒 Update external URL using SSL Mar 12, 2018
notification 🔒 Update external URL using SSL Mar 12, 2018
output 🔒 Update external URL using SSL Mar 12, 2018
playground 🔒 Update external URL using SSL Mar 12, 2018
scm/git 🔒 Update external URL using SSL Mar 12, 2018
session 🎨 跳过常规库目录扫描 Oct 5, 2018
shell 🔒 Update external URL using SSL Mar 12, 2018
static ⬆️ upgrade gulp Oct 5, 2018
tmp . Oct 21, 2015
util 🔒 Update external URL using SSL Mar 12, 2018
vendor Update vendor Mar 13, 2018
views :sparklers: fixed #346 Oct 5, 2018
.gitattributes 🔧 Change repo language May 6, 2018
.gitignore :sparklers: add study link Apr 23, 2017
.header.json 📄 2018 Happy new year! Jan 1, 2018
.header.txt 🔒 Update external URL using SSL Mar 12, 2018
.travis.yml 💚 Fix CI build Oct 18, 2017
Dockerfile 🐳 docker build Mar 13, 2018
LICENSE 🔒 Update external URL using SSL Mar 12, 2018
README.md 📝 README 使用中文 Oct 7, 2018
TERMS.md 🔒 Update external URL using SSL Mar 12, 2018
coverage.sh 💚 CI Mar 13, 2018
gulpfile.js ⬆️ upgrade gulp Oct 5, 2018
main.go 🔒 Update external URL using SSL Mar 12, 2018
package-lock.json ⬆️ upgrade gulp Oct 5, 2018
package.json ⬆️ upgrade gulp Oct 5, 2018
pkg.sh package tool Sep 19, 2015
yarn.lock :sparklers: upgrade gulp cc Apr 23, 2017

README.md

Wide Build Status Go Report Card Coverage Status Apache License API Documentation Download

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

简介

Wide 是一个基于 Web 的 Go 语言 IDE

动机

目前较为流行的 Go IDE 都有一些缺陷或遗憾:

  • 文本编辑器类(vim/emacs/sublime/Atom 等):对于新手门槛太高,搭建复杂
  • 插件类(goclipse、IDEA 等):需要原 IDE 支持,不够专业
  • LiteIDE 界面不够 modern、goland 收费
  • 缺少网络分享、嵌入网站可运行功能

另外,Go IDE 很少,用 Go 本身开发的 IDE 更是没有,这是一个很好的尝试。关于产品定位的讨论请看这里

特性

基于 Web 的 IDE:

  • 只需要浏览器就能进行开发、运行
  • 跨平台,甚至在移动设备上
  • 易进行功能扩展
  • 易与其他系统集成
  • 极客体验

核心功能:

  • 代码高亮、折叠:Go/HTML/JavaScript/Markdown 等
  • 自动完成:Go/HTML 等
  • 编译检查:编辑器提示编译错误
  • 格式化:Go/HTML/JSON 等
  • 运行:支持同时运行多个程序,方便联调
  • 多用户:团队开发,方便协作
  • 代码导航:跳转到声明,查找使用,文件搜索等
  • Web 开发:前端(HTML/JS/CSS)开发支持
  • go tool:go get/install/fmt 等
  • 项目导入/导出
  • UI/编辑器多主题
  • 支持交叉编译
  • 调试:基于 gdb 的调试系统(TBD)
  • Git 整合:常用 git 命令可视化操作(TBD)
  • Shell:连接到服务器执行命令(TBD)

界面

主界面

Overview

跳转到文件

Goto File

自动完成

Autocomplete

主题

Theme

查看表达式

Show Expression Info

构建报错提示

Build Error Info

Git 克隆

Git Clone

交叉编译

Cross-Compilation

Playground

Playground

架构

构建与运行

Build & Run

  • 一个浏览器 tab 对应一个 Wide 会话
  • 通过 WebSocket 进行程序执行输出推送
  1. 客户端浏览器发送 Build 请求
  2. 服务器使用 os/exec 执行 go build 命令
    2.1. 生成可执行文件
  3. 客户端浏览器发送 Run 请求
  4. 服务器使用 os/exec 执行文件
    4.1. 生成进程
    4.2. 运行结果输出到 WebSocket 通道
  5. 客户端浏览器监听 ws.onmessage 到消息后做展现

代码辅助

  • 自动完成
  • 查找使用
  1. 浏览器客户端发送代码辅助请求
  2. Handler 根据请求对应的 HTTP 会话获取用户工作空间
  3. 执行 gocode/ide_stub(gotools) 命令
    3.1 设置环境变量(${GOPATH} 为用户工作空间路径)
    3.2 gocode 命令需要设置参数 lib-path

文档

社区

授权

Wide 使用 Apache License, Version 2 作为开源协议,请务必遵循该开源协议相关约定。

鸣谢