首页
社区
课程
招聘
[原创] 分享一下写了N年的自用编辑器 -- EDX
发表于: 2021-10-3 18:26 80276

[原创] 分享一下写了N年的自用编辑器 -- EDX

2021-10-3 18:26
80276
收藏
免费 55
支持
分享
最新回复 (312)
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
101
弄个本地包复用代码的功能最好
2022-5-13 20:28
0
雪    币: 5260
活跃值: (3929)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
102
mb_vuqhdenb 弄个本地包复用代码的功能最好
本地包复用?何解?
2022-5-13 23:03
0
雪    币: 5260
活跃值: (3929)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
103

医生让我多锻炼我的胳膊,于是最近开始敲点代码。

主要变更如下:

添加基本的logcat日志高亮

添加对ccache的支持,在不使用PCH的情况下,运行效果较好。WSL下暂不支持,可以通过手工修改CMakeLists.txt实现。

实现文档标签页右键菜单

支持跨平台的目标的CMake工程

支持基于simavr的avr代码调试

支持解析、快速定位gcc的include/inline提示

修正WSL下的clangd支持,代码补全/引用查找/跳转等功能都可以正常工作了。


下图为WSL项目的代码补全及调试效果展示:

下图为配合simavr调试avr程序的效果展示:

simavr的gdbserver实现有些问题,会抛出大量signal 0,这会影响单步,步入,步出等指令的使用。但总归是能进行调试了

配合OpenOCD也可以实现其它各种嵌入式程序的开发调试

后续会逐渐添加各种嵌入式开发所需功能,如:串口监视,寄存器视图,反汇编视图,OpenOCD相关控制功能等

(注:目前的嵌入式开发工具链搜索只支持msys2/mingw发行的版本)

2022-5-19 14:20
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
104
大湿,c++20模块解析支持吗?
2022-5-24 21:24
0
雪    币: 5260
活跃值: (3929)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
105
mb_vuqhdenb 大湿,c++20模块解析支持吗?
不支持。
别说解析了,现在编译都还有问题。因为不同的厂家对module的支持有所不同。
C++标准只规定了语法。但根本不考虑编译器的现实问题。
引用模块如何去查找模块的定义?总不能全目录搜索吧?不同的编译器采用了不同的方案。
VC的方案比较人性化,它要求模块的导出和声明在.ixx文件单元中。这样它在编译的时候可以自动根据模块引用查找到对应的导出声明并自动预编译。 这个方案在CMAKE中可以无缝支持。
GCC的方案是要求用户手工编译模块单元,以便于自动生成模块导出数据库。然后再由其它代码单元引用。在模块定义被编译之前,任何引用它的代码单元都不能编译。以目前看来,CMake也无力自动识别哪些是单元应该先编译,哪些单元要后编译。当然,也可以学VC专门把导出信息放到单独的编译单元里集中编译,但这还是要你手工处理。好在预编译过后,引用是自动的。
Clang的方案就更扯了,不光要先编译模块导出信息,还要用特殊的编译指令。引用的时候还不能自动搜索(反正我没试成功),必须手工指定引用的模块导出信息。
Clangd在语法上应该是能支持module的。但可能需要生成/指定一些相关参数才能正常工作。我还没工夫去研究这个问题。
2022-5-24 23:27
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
106
cpp要是能搞到dlang的效果就给力了,可惜dlang不能编译Windows内核驱动程序
2022-5-26 13:02
0
雪    币: 5260
活跃值: (3929)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
107
mb_vuqhdenb cpp要是能搞到dlang的效果就给力了,可惜dlang不能编译Windows内核驱动程序
D1的时候还有点兴趣,后来它逐渐加了各种乱七八糟的东西以后,实在提不起兴趣再去折腾了。
2022-5-27 23:28
0
雪    币: 5260
活跃值: (3929)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
108
mb_vuqhdenb cpp要是能搞到dlang的效果就给力了,可惜dlang不能编译Windows内核驱动程序

例行发布新版本,这周加了不少东西,如下:

2022-05-27:

支持ESP32-IDF工程(目前仅支持5.0版IDF工具自动扫描,暂不支持调试)。

支持立即模式下调试D程序


2022-05-26:

支持C++/GCC的属性语法

优化C/C++解析器

修正工程面板在文件重命名后,图标不更新的问题

编辑器支持动态文本缩放(ctrl+alt+加号, ctrl+alt+减号, ctrl+alt+0)

修正文本编辑器偶尔出现的刷新异常

调试器实现交互式控制台,可以通过控制台执行gdb/windbg交互指令


2022-05-24:

优化文本文件识别逻辑

实现基本的寄存器视图

解码gdb/mi中的转义字符

优化windbg源码定位行为

修正windbg中下标表达式求值的问题

调试器支持设置目标运行时的环境变量

C/C++分析器支持raw string语法

修正特定条件下括号匹配相关问题(高亮、跳转异常)

修正工程面板等界面上可能出现光标锁死无法用键盘移动的问题

修正全屏模式切换的异常

加载工程后不隐藏单个标签页


用户安装ESP32-IDF后,第一次export环境变量后会记录相关的环境信息。

EDX目前依赖于这个信息扫描ESP32-IDF的工具链。

之后就可以用EDX打开由ESP32-IDF创建的cmake工程,

目前可以编译,安装,完美支持语法补全,符号跳转等功能。调试功能还没完成,预计下个版本可以正式支持。

运行效果如下:


2022-5-27 23:36
0
雪    币: 2121
活跃值: (1346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
109
优秀
2022-5-28 09:03
0
雪    币: 38
活跃值: (798)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
110
膜拜哦
2022-5-28 09:46
0
雪    币: 5260
活跃值: (3929)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
111

基本上完整支持了ESP32的集成开发调试,虽然调试体验不太好,但总比官方的建议的vscode和eclipse要强多了。哈哈


2022-06-12:

ESP32-IDF支持OpenOCD+GDB调试


2022-06-11:

完善ESP32-IDF支持(支持切换生成类型及串口相关设置)

实现串口监视器

Ctrl+F5运行控制台程序,退出后保持控制台窗口不关闭

修正WinDBG下,嵌套作用域的同名变量监视不正确的问题

修正部分表达式求值异常

修正部分UI刷新异常

输出控制台支持表达式求值

2022-6-12 23:51
0
雪    币: 5260
活跃值: (3929)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
112

重大性能优化!!

对于巨型文本的查找、替换以及针对海量操作的撤销、重作性能提升了几十上百倍。


顺便还干了两天美工,画了几十个新图标,哈哈




更新日志


2022-06-24:

优化搜索全部的性能,对于百万级匹配目标的搜索性能提升20倍以上

优化替换全部的性能,对于百万级匹配目标的替换性能提升50~100倍

优化海量操作的撤销/重做,性能提升100倍以上

支持取消慢速的搜索、替换、撤销、重做操作

优化图标,支持高DPI设备

支持记录最近打开的目录

C/C++分析器支持验证转义字符的有效性

优化界面刷新问题

ESP32-IDF支持根据IDF_PATH环境变量搜索

优化文本渲染器对terminal转义序列的支持效果

支持通过控制台附加到运行中的进程进行调试

修正WinDBG死循环的问题

修正调试器断点记录的问题


2022-6-24 10:22
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
113
没做小程序外挂吗
2022-6-24 10:37
0
雪    币: 219
活跃值: (190)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
114
实在好强啊!
2022-7-6 23:17
0
雪    币: 224
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
115
前辈,合适的机会真的建议能开源,感觉国内这方面的人才和资料很少,希望以后能拿到开源代码学习您的思路!
2022-7-11 23:11
0
雪    币: 5260
活跃值: (3929)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
116
wanghuabin 前辈,合适的机会真的建议能开源,感觉国内这方面的人才和资料很少,希望以后能拿到开源代码学习您的思路!
谢谢支持。我这个项目一时半会儿开源不了。部分组件单独拿出来分享给大家倒没什么问题。
项目里乱七八糟的代码大几十万行全是手撸的,一大半还是跨平台的没有文档。自已玩,想怎么写就怎么写,再乱也是自己挨着。啥设计、结构都没我的性能来得重要,要拿来开源实在没有精力去维护。而且很多东西很乱,也不好意思拿出去丢人。
有啥需求和建议,欢迎大家随时提出
2022-7-12 18:25
0
雪    币: 5260
活跃值: (3929)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
117

改了一堆BUG,实现了个简单的工程向导


更新日志如下:


2022-07-14:

实现简易工程向导

修正通过工程面板重命名已打开的文件时,文件名未同步修改的异常

修正表达式求值除零崩溃问题

添加-new-window命令行参数

支持在新窗口中打开历史记录(文件/目录),shift+鼠标左键 或 鼠标中键 点击菜单项

改进鼠标滚轮行为,解决触摸板连续滚动失效的问题

修正搜索字符串为空时应用崩溃的问题

修正Windows BUG导致应用界面卡住的问题


2022-07-07:

更新大量支持高DPI的图标

修正取消另存为对话框后,文件名出错的异常

修正搜索结果格式异常

修正高DPI设备下,文本渲染崩溃的问题

修正系统无串口设备时,应用可能崩溃的问题

修正菜单在高DPI设备上的显示异常

修正logcat解析器对无时间戳日志的支持

添加syntax命令,支持控制台设置当前文件的语法高亮模式

更新libzip到1.9.2


2022-7-14 19:42
0
雪    币: 4354
活跃值: (3373)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
118

每次打开都是错误

上传的附件:
2022-7-14 21:45
0
雪    币: 5260
活跃值: (3929)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
119
monpea 每次打开都是错误

你是啥系统?


建议手工更新成最新版本,重新运行一下。

如果依旧有错误,会在应用程序配置目录里生成错误日志,位置:%LOCALAPPDATA%\ed-x.cc\edx

可以的话,麻烦把这个错误日志发给我一下。谢谢

最后于 2022-7-14 23:51 被无心红叶编辑 ,原因:
2022-7-14 21:57
0
雪    币: 9995
活跃值: (4396)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
120
佩服佩服
2022-7-15 11:01
0
雪    币: 11
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
121
不会用
2022-7-16 13:47
0
雪    币: 4354
活跃值: (3373)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
122

0.4.2.1265,没有发现错误日志文件


上传的附件:
2022-7-16 13:48
0
雪    币: 4354
活跃值: (3373)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
123

0.4.2.195也一样报错,除了一个config.xml没有其他文件

上传的附件:
2022-7-16 13:54
0
雪    币: 5260
活跃值: (3929)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
124
wx_NULL_579 不会用[em_13]
哈哈,当记事本应该没有啥问题吧
2022-7-16 17:23
0
雪    币: 5260
活跃值: (3929)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
125
monpea 0.4.2.195也一样报错,除了一个config.xml没有其他文件

如果没有任何异常文件,说明异常不在几个主要工作线程里,或异常的类型是一些我不支持类型。
请问你是做了什么操作以后才出错的么?还是启动几秒以后就出错了?
我手上的几十台不同设备都没有出现过这个问题。也有可能是你的系统里有一些应用软件导致的问题,通常类似360这种“安全”软件比较容易导致这类问题。
请问你的系统是什么版本?系统里是否有安装什么特别的软件么?


或者你的电脑有GDB,通过GDB调试运行,帮我把调用栈抓出来,能比较直观得看出来出错的位置。这是0.4.2.1295版本对应的符号文件,https://www.ed-x.cc/versions/edx-sym-0.4.2.1295.zip , 下载并解压到edx.exe的目录即可。

最后于 2022-7-16 17:39 被无心红叶编辑 ,原因:
2022-7-16 17:34
0
游客
登录 | 注册 方可回帖
返回
//