Skip to content

Repository files navigation

Me Editor

Me Editor 是一个 Rust + GPUI Kit 编写的原生桌面代码编辑器初版。

当前可用功能

  • 原生可调布局:文件区与代码编辑区。
  • 递归文件树,并遵循 .gitignore。
  • JetBrains 2023 风格深浅色主题,以及按文件类型显示的彩色 SVG 图标。
  • 打开 UTF-8 文件并按扩展名启用语法高亮。
  • Rust 插件提供 WASM 语法高亮和定义跳转;在符号处按 F12 或点击鼠标中键可打开项目文件、Cargo 依赖及已安装的标准库源码。中键点击的位置没有定义时,会短暂显示“暂无定义”。
  • Rust 项目内的 TOML 文件使用 Rust 配置文件图标。
  • JavaScript 插件为 .js、.mjs、.cjs、.jsx 提供 WASM 语法高亮、语法错误提示和深浅色图标,无需 Node.js;详见 JavaScript 插件说明。
  • HTML 插件为 .html、.htm 提供 WASM 解析、标签与属性高亮和深浅色文件图标;安装方式及范围见 HTML 插件说明。
  • 行号、缩进参考线、代码折叠和软换行切换。
  • 选中文本后按住鼠标左键拖动,松开后移动到落点;支持边缘自动滚动、Esc 取消和一次撤销恢复。
  • 插件 WASM 语法诊断:Rust、TOML、HTML、JavaScript 解析器报告的语法错误显示红色波浪线,悬浮查看说明;状态栏显示当前文件的错误数量,点击或按 F8 跳转到下一处,Shift+F8 返回上一处。编辑修正后自动清除错误。
  • LSP 语义诊断:编辑停顿 180 ms 后同步未保存内容,支持标准诊断请求和服务器推送,显示类型错误、未定义函数和警告,并在悬浮卡片中保留来源、错误码和完整说明。Rust 使用已安装的 rust-analyzer,开启原生及实验性诊断以支持输入时检查(实验性检查可能误报);原生分析尚未覆盖的问题(例如部分未定义类型)由保存后的编译检查补充。F8/Shift+F8 同样可以跳转这些问题。
  • 编辑脏状态、保存按钮与 Ctrl+S。
  • SVG 插件:左侧编辑源码、右侧实时预览,支持拖动分割线、透明棋盘底座及始终居中的滚轮缩放;详见 SVG 插件说明。
  • 保存前在用户本地数据目录创建历史快照,不污染项目目录。
  • 声明式插件清单解析和校验骨架。
  • 统一命令注册表骨架。
  • WebAssembly 运行时插件:本机安装、热更新、权限确认、状态保存与通用 GPUI 停靠界面。终端插件内的 Alacritty 核心、右侧 Tab 与交互均在插件内,详见 运行时插件平台 和 终端插件使用说明。

运行

已构建的 Windows 可执行文件可直接运行:

.\dist\me-editor.exe

从源码以 Debug 开发模式运行(不打包),cargo run 默认生成未优化的 Debug 程序,窗口拖动可能明显卡顿。:

cd C:\Projects\RustProjects\Editor
cargo run -p editor-app -- .

也可以指定要打开的工作区或文件:

cargo run -p editor-app -- C:\path\to\project
cargo run -p editor-app -- C:\path\to\project\src\main.rs

打包为正式包:

cargo run --release -p editor-app

验证

cargo fmt --check
cargo test --workspace --exclude editor-app
cargo check --workspace

工作区结构

crates/
├─ editor-app/        GPUI Kit 窗口、编辑器和交互
├─ editor-core/       文档、工作区与命令模块
├─ platform-windows/  原子保存和本地历史适配器
└─ plugin-schema/     插件清单稳定格式与校验

Rust 跳转使用插件清单声明的 rust-analyzer。编辑器会查找已安装的语言服务,依赖和标准库源码需要在本机可用。Git 写操作、搜索替换预览和 SQLite 历史索引仍在后续版本接入现有模块接缝。

第三方资源

GPUI 界面依赖使用 crates.io 发布的上游版本,由 Cargo.lock 锁定;项目不使用 gpui-base 或 gpui-component 的本地源码覆盖。插件停靠区的显隐适配保留在应用层,补全与悬浮提示采用上游组件行为。

文件图标由当前插件资源提供。

终端 WASM 插件使用内置的 Alacritty 0.26.0 WASM 适配核心和上游 vte;详见 运行时插件文档。

About

A Rust code editor built entirely with AI, featuring support for a WASM plugin system (currently under development).

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages