【go语言】使用Wails开发一款现代化文本编辑器 - 从0到1的实践指南

前言

VSCode作为一款优秀的编辑器工具,其使用Electron进行开发。而wails作为基于webview2开发桌面应用的框架,其实和Electron在内存占用方面大差不差。亮点可能就是exe就5MB左右。(背后的webview2 400M左右)于是便使用wails开发一款文本编辑器试试。 在这里插入图片描述

项目介绍

此项目名为 wails-coder ,目标是打造一款轻量的文本编辑器,采用常见的编辑器设计风格,支持以下核心功能:

  • ✅ 文件资源管理器 - 树形结构浏览文件系统
  • ✅ 多标签页编辑 - 同时编辑多个文件
  • ✅ 集成终端 - 内置命令行工具
  • ✅ 深色主题 - 护眼编程体验
  • ✅ 快捷键支持 - 提升开发效率

模块组件划分

以界面组件分类,主要包括以下几种:

  • toolbar工具栏:包含文件、编辑、终端、帮助等菜单组。
  • Activity活动栏:左侧切换展示资源管理器、搜索、git、插件界面等,主要影响左侧布局。
  • Editor编辑器界面:主要由文件tabs和编辑器区域组成。
  • BottomBar底栏:主要展示当前文件 行列空格编码等信息
  • Panel各种面板:此类属于基础+扩展功能,比如终端交互界面、运行日志界面。报错界面、git commits树图展示界面,还应该支持插件注册。 在这里插入图片描述

终端支持

在这里插入图片描述

git提交侧栏

直接git add -A然后commit。 在这里插入图片描述

git日志面板

可视化展示commits信息以及文件变更列表 在这里插入图片描述

git-diff modal支持

点击变更的文件,可以弹框展示前后差异。 在这里插入图片描述

插件列表

当然只是个list, 还没想好如何和插件联动工作的。 来自openvsx网站 在这里插入图片描述

进程管理器

按照pid展示进程, 右键可以taskkill强制结束 在这里插入图片描述

字符串查找

在工作目录下匹配字符串,按照文件-对应行展示列表 在这里插入图片描述

技术栈选择

后端技术栈

  • Go - 高性能后端语言,负责文件系统操作
  • Wails v2 - 跨平台GUI框架,Go + Web技术栈
  • Go标准库 - 文件IO、路径处理、命令执行

前端技术栈

  • Vue 3 - 渐进式JavaScript框架
  • TypeScript - 类型安全的JavaScript超集
  • Vite - 快速的构建工具
  • monoca-editor:开源的编辑器组件

总结

当然目前只是一个简单的编辑器功能,未来可能也是,毕竟主要是写着玩玩。而且这种文本编辑器就像搭积木一样,在基础框架上附加一个个小功能,所以可以慢慢来。

体验

免责声明:仅学习、展示和查看文件,不要拿来编辑和修改任何文件。 pan.baidu.com/s/1E_EZdpIU…