所有项目
维护中 2024

NotepadNext 鸿蒙版

对标 Notepad++ 的鸿蒙原生代码编辑器,核心库移植 + UI 重写

项目背景

Notepad++ / NotepadNext 是 Windows 上最流行的轻量代码编辑器,基于 Scintilla 编辑引擎。目标是将其核心编辑能力迁移到 HarmonyOS 平台,提供原生体验的代码编辑器。

迁移策略:核心库移植 + UI 重写

与 CrossShellNext(完全重新设计)不同,NotepadNext 的核心编辑引擎 Scintilla 是平台无关的 C++ 库,可以保留并移植。但 UI 层(Qt/Win32)无法复用,需要用 ArkTS 重写。

架构分层

  • C++ 层:Scintilla 编辑引擎交叉编译到 ARM64,保留语法高亮、折叠、多光标等核心能力
  • NAPI 桥接层:将 Scintilla 的消息接口封装为异步 NAPI 调用
  • ArkTS UI 层:原生鸿蒙界面,实现文件管理、标签页、设置等交互

技术要点

Scintilla 移植:剥离 Win32/GTK 平台代码,保留核心编辑模型,编写 OpenHarmony 平台后端(渲染、输入事件、剪贴板)。

渲染适配:Scintilla 原生使用 GDI/Cairo 绘制,需适配到 ArkUI Canvas 渲染路径。

大文件性能:保留 Scintilla 的分段文本存储(piece table),确保打开大文件时不卡顿。

功能

  • 语法高亮(50+ 语言)
  • 代码折叠
  • 多光标编辑
  • 查找替换(正则支持)
  • 文件标签页管理
  • 明暗主题