Skip to content

feat: 将WPF AvalonEdit编辑器替换为Avalonia AvaloniaEdit#39

Merged
ca1e merged 3 commits into
devfrom
feat/avalonia-edit
Apr 22, 2026
Merged

feat: 将WPF AvalonEdit编辑器替换为Avalonia AvaloniaEdit#39
ca1e merged 3 commits into
devfrom
feat/avalonia-edit

Conversation

@ca1e

@ca1e ca1e commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • 将 WinForms+WPF 混合架构中的 AvalonEdit (WPF) 替换为 Avalonia AvaloniaEdit,完全移除 UseWPF 依赖
  • 新增 ScriptEditorControl/ScriptEditorHost/EcsHighlightingLoader 到 Avalonia.Core 共享库
  • XSHD 语法高亮文件从 UI.Common 迁移至 Avalonia.Core 内嵌资源
  • EasyConForm 和 MainForm 改用 WinFormsAvaloniaControlHost 嵌入编辑器
  • 集成 SearchPanel 搜索、CustomFoldingStrategy 代码折叠、文件拖放
  • 修复 AvaloniaEdit 12 Load(string) stub 问题(改用 FileStream)
  • 修复编辑器焦点时菜单快捷键和 Enter 键透传问题
  • 删除 WPF 相关代码:FindPanel、CodeCompletion、EcpCompletion

Test plan

  • 打开脚本文件,确认内容正确显示
  • 编辑器支持行号、语法高亮(ECScript/Lua/Python)
  • Ctrl+S 保存、Ctrl+O 打开、Ctrl+F 查找、F5 执行等菜单快捷键正常工作
  • Enter 换行不被窗口按钮拦截
  • 文件拖放到编辑器可正常打开
  • 搜索面板 (Ctrl+F) 正常弹出和使用

ca1e and others added 3 commits April 22, 2026 23:25
- 新增ScriptEditorControl/ScriptEditorHost/EcsHighlightingLoader到Avalonia.Core
- XSHD语法高亮文件从UI.Common迁移至Avalonia.Core
- EasyConForm和MainForm改用WinFormsAvaloniaControlHost嵌入编辑器
- 集成SearchPanel搜索、CustomFoldingStrategy代码折叠、文件拖放
- 修复AvaloniaEdit 12 Load(string) stub问题(改用FileStream)
- 修复编辑器焦点时菜单快捷键透传(移除ProcessCmdKey拦截)
- 删除WPF相关代码:FindPanel、CodeCompletion、EcpCompletion
- 新增CodeCompletionController/EcpCompletionProvider/EcpCompletionData
- 支持关键词、变量($)/常量(_)/图片标签(@)补全,Ctrl+Space手动触发
- 集成到ScriptEditorControl,暴露EnableAutoCompletion开关和SetImgLabelProvider
- EasyConForm和MainForm接入补全并绑定配置开关
- 修复菜单快捷键在编辑器焦点时不透传的问题(移除ProcessCmdKey拦截)
- 修复AvaloniaEdit 12 Load(string) stub问题
- CodeCompletionController改为internal,移除多余GetImgLabel委托类型
@ca1e ca1e merged commit 08ea467 into dev Apr 22, 2026
1 check passed
@ca1e ca1e deleted the feat/avalonia-edit branch April 22, 2026 16:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant