Go to file
Van dd949ae6a3
add sponsor
2019-07-17 18:15:59 +08:00
conf ♻️ 引入 Gulu 工具库 2019-05-24 21:04:25 +08:00
editor ♻️ 重构返回值状态码 2019-05-24 21:52:17 +08:00
event ♻️ 引入 Gulu 工具库 2019-05-24 21:04:25 +08:00
file ♻️ 重构返回值状态码 2019-05-24 21:52:17 +08:00
i18n add sponsor 2019-07-17 18:15:59 +08:00
notification ♻️ 引入 Gulu 工具库 2019-05-24 21:04:25 +08:00
output ♻️ 重构返回值状态码 2019-05-24 21:52:17 +08:00
playground ♻️ 重构返回值状态码 2019-05-24 21:52:17 +08:00
session ♻️ 重构返回值状态码 2019-05-24 21:52:17 +08:00
static add sponsor 2019-07-17 18:15:59 +08:00
util ♻️ 引入 Gulu 工具库 2019-05-24 21:04:25 +08:00
views add sponsor 2019-07-17 18:15:59 +08:00
.gitattributes :octocat: 主要语言确实是 js 😂 2019-05-24 23:40:49 +08:00
.gitignore 🏗️ #347 2019-05-16 23:17:25 +08:00
.header.json 📄 更新文件头 2019-05-17 11:28:50 +08:00
.header.txt 🔒 Update external URL using SSL 2018-03-12 12:28:33 +08:00
.travis.yml 💚 移除测试覆盖率 2019-05-25 00:07:32 +08:00
LICENSE 🔒 Update external URL using SSL 2018-03-12 12:28:33 +08:00
README.md 📝 更新徽标 2019-05-25 22:05:46 +08:00
TERMS.md 📄 更新授权细节 2019-05-16 21:44:13 +08:00
go.mod 🎨 更新依赖 2019-05-29 18:47:48 +08:00
go.sum 🎨 更新依赖 2019-05-29 18:47:48 +08:00
gulpfile.js ⬆️ upgrade gulp 2018-10-05 23:11:52 +08:00
main.go 🎨 交叉编译支持 2019-05-29 18:48:08 +08:00
package-lock.json 🔖 更新版本号 2019-05-24 11:53:30 +08:00
package.json 🔖 更新版本号 2019-05-24 11:53:30 +08:00
pkg.sh package tool 2015-09-19 21:40:32 +08:00
yarn.lock :sparklers: upgrade gulp cc 2017-04-24 00:11:51 +08:00

README.md

Wide

一款基于 Web 的 Go 语言 IDE




        

简介

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 toolgo mod/install/fmt 等
  • 项目文件导出
  • UI/编辑器多主题
  • 支持交叉编译

界面

主界面

Overview

跳转到文件

Goto File

自动完成

Autocomplete

主题

Theme

查看表达式

Show Expression Info

构建报错提示

Build Error Info

交叉编译

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 开源协议。

鸣谢


开源项目推荐

  • 如果你需要搭建一个个人博客系统,可以考虑使用 Solo
  • 如果你需要搭建一个多用户博客平台,可以考虑使用 Pipe
  • 如果你需要搭建一个社区平台,可以考虑使用 Sym
  • 欢迎加入我们的小众开源社区,详情请看这里