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

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

2021-10-3 18:26
80170

20年前写了个编辑器,一直自用。
今年捡起来稍加完善,感觉可以拿出来见人了。拿出来分享给大家。
官方网站: https://www.ed-x.cc/
下载链接: https://www.ed-x.cc/versions/edx.zip
32位版本: https://www.ed-x.cc/versions/edx-x86.zip

 

可以支持C/C++项目的开发和调试。
可以调试VC,Mingw以及WSL下的程序。(调试VC目标基于dbgeng,调试32位目标容易使目标产生运行异常,是dbgeng自身的问题...)
内建调试符号美化功能,方便查看复杂类型的数据。性能还行,能够查看较大规模的数据对象。
支持CMake工程管理。
支持无工程的单文件编译调试,方便开发测试。
支持基于Clangd的语法提示,补全。
支持打开4G以上的大型文本。
支持自动搜索工具链(VS,MSYS2,MINGW,CLANG,LLVM-MINGW,Intel OneAPI,WSL)
占用的资源很小,速度飞快。
日常使用,无论是打开文件还是打开工程都是秒开。

 

以下为WSL下调试的截图:
WSL下开发调试

最后于 2021-12-11 13:51 被无心红叶编辑 ,原因: 添加x86版本下载地址
收藏
免费 55
支持
分享
最新回复 (312)
雪    币: 1392
活跃值: (4972)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
2
大佬牛逼。
2021-10-3 18:33
0
雪    币: 3365
活跃值: (3737)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
牛啊,大佬。
2021-10-3 18:38
0
雪    币: 3794
活跃值: (1862)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
20年!辛苦了!
2021-10-3 20:08
0
雪    币: 1195
活跃值: (1125)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
大佬厉害啊
2021-10-3 20:24
0
雪    币: 170
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
牛逼啊,界面引擎可以开源吗
2021-10-3 20:34
0
雪    币: 357
活跃值: (3248)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
7

POST https://www.ed-x.cc/api/checkin HTTP/1.1
Accept: */*
Content-Length: 100
Host: www.ed-x.cc
User-Agent: EDX
Cache-Control: no-cache

{"lang":"zh-CN","sig":"xxxxxxxxxxxxx","token":"","version":"0.4.0.788"}

会收集bios,cpu,disk,mainboard,memory,nic,os

最后于 2021-10-3 20:44 被KooJiSung编辑 ,原因:
2021-10-3 20:38
3
雪    币: 170
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
让我想起了这个项目 https://github.com/rxi/lite
2021-10-3 20:40
0
雪    币: 5205
活跃值: (3859)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
KooJiSung POST https://www.ed-x.cc/api/checkin HTTP/1.1Accept: */*Content-Length:&a ...

^_^认证和升级还没弄好,暂时是个半成品


刚才重新发了个新版本,去除过于敏感的信息,免得大家误会。只保留了一些基本信息。并且修正了频繁调用此接口的问题。


如下:

{

"cpu":"Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz",

"machine":[

"机器信息HASH1",

"机器信息HASH2"

],

"mem":65536,

"os":{

"arch":"64 ",

"name":"Microsoft Windows 11 ",

"ver":"10.0.22000"

}

}


最后于 2021-10-3 22:27 被无心红叶编辑 ,原因:
2021-10-3 20:46
0
雪    币: 5205
活跃值: (3859)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
mb_hgrbqfun 牛逼啊,界面引擎可以开源吗
没啥界面引擎,UI部分的框架是与WTL类似的自有库。暂时没有开源的打算,一是没精力维护,二自己用的话改起来就比较随心所欲。如果你想参考Windows上的UI框架,WTL是个很容易上手的例子。
2021-10-3 21:02
0
雪    币: 2594
活跃值: (1867)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
大佬牛逼,会不会支持autolisp语言呀。
2021-10-7 21:27
0
雪    币: 5205
活跃值: (3859)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
boyving 大佬牛逼,会不会支持autolisp语言呀。[em_76]
没玩过autolisp呀,OCaml倒是玩过几天。一直半会儿怕是支持不了。目前基本上是我用到啥功能,我就加啥功能。总共没几个人用,就先自给自足了。
2021-10-8 00:53
0
雪    币: 5205
活跃值: (3859)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13

这两天给vc目标的调试器添加表达器求值功能。

目前,能处理大部分C++03中的表达式语法。函数指针不支持,数组指针部分支持,调试器应该不怎么用得到。

之所以不用dbgeng自己的表达式求值功能,是因为我这里的调试器符号是基于imghlp手工处理的,这样可以完美实现符号美化功能。而dbgeng中的符号信息与imghlp还隔了一层纱。这也意味着我这个方案不支持vc程序的远程调试。

其次,顺手借鉴(抄袭)了VS格式化后缀语法,实现了

  1. wm, win32 message的值到名称映射,调试win32程序的消息时不用去查表了。更进一步的消息体解析(类似spy++的那种还不支持。vs也不支持,先模仿一下,以后再做超越吧:)

  2. hr, HRESULT的值到FormatMessage的映射

  3. x, 16进制格式化

  4. b, 2进制格式化

  5. 其它更多格式化功能还没来得及做,以后留个扩展接口在lua里搞


好久没写复杂的解析器了,把形式语言的那些理论知识都忘得七七八八了。这么个简单的表达式解析就写了大半天。

另外,再次吐槽一下,C/C++的运算符对解析器的确不怎么友好,各种二义性问题,上下文无关文法都搞不定。

改天翻一下以前写的C++解析器,已经忘了当初是怎么搞的了。

最后于 2021-10-8 01:54 被无心红叶编辑 ,原因:
2021-10-8 01:53
0
雪    币: 2594
活跃值: (1867)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
无心红叶 没玩过autolisp呀,OCaml倒是玩过几天。一直半会儿怕是支持不了。目前基本上是我用到啥功能,我就加啥功能。总共没几个人用,就先自给自足了。
大佬一看就懂怎么玩了。
2021-10-8 10:36
0
雪    币: 5205
活跃值: (3859)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15

Windows 11正式发布了,我也非正式支持了一下Windows 11的右键菜单,如下:

有以下两种方法:

方法一:

    最新版本里已经包含了生成MSIX包的必要文件,会搞自签名的朋友自己把这个包打成MSIX并签名安装即可。

方法二:

    打开 系统设置 > 开发人员模式 > 从任意源安装应用 选项,如下图:

   

    运行 regsvr32 shell_ext.dll 手工注册文件管理器扩展

    运行 powershell -command add-appxpackage -register appxmanifest.xml 注册应用

2021-10-13 12:35
0
雪    币: 0
活跃值: (979)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
如果下面再增加个控制台会不会更方便一点
2021-10-13 15:25
0
雪    币: 66
活跃值: (2620)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
6666 大佬牛逼阿
2021-10-13 16:46
0
雪    币: 5205
活跃值: (3859)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
spring丶必应 如果下面再增加个控制台会不会更方便一点
有此打算,不过做有WindowsTerminal在前面顶着,慢慢来吧。就一般使用来说,独立的控制台会更常用也更方便。IDE里集成的控制台只是个补充,先放后面慢慢弄。
2021-10-13 20:57
0
雪    币: 5205
活跃值: (3859)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19

新鲜出炉十六进制编辑功能。以前写了个开头搁置了十几年的功能,花了一周搞定。

十六进制编辑器做为一个基础组件,在调试器以及后续的其它功能中也有用武之地。

现在只完成了基本的编辑功能,后续还要补充搜索,替换,定位,数据分析相关功能。

另外,新版本内嵌了标准的Mono字体,以保证在不同系统里有一致的UI呈现效果。

欢迎大家来找茬,帮忙测试一下BUG

2021-10-22 00:02
0
雪    币: 4312
活跃值: (6526)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
very good
2021-10-24 20:29
0
雪    币: 4664
活跃值: (4045)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
优秀
2021-10-24 20:31
0
雪    币: 5905
活跃值: (5275)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
22
大佬牛逼!感谢分享!
2021-10-24 21:06
0
雪    币: 5205
活跃值: (3859)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23

定期添加新功能,最近主要改进点:

  1. xml/json的格式化功能。以前只支持自动缩进,现在可以支持自动换行

  2. 文件结构分析视图。配合16进制编辑器,可以分析已知文件的结构。目前仅支持Archive(*.a, *.lib), PE(*.exe, *.dll), COFF(*.o *.obj), PNG四种格式。

  3. 修正了一些小BUG


2021-11-6 00:53
0
雪    币: 5205
活跃值: (3859)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24

花了两天研究了一下libgit2, 画了一个人模狗样的git版本视图。

绘制算法用了自己都要看不下去的极其丑陋的设计, 一时半会儿怕也想不出啥好算法...

为了顺应业界“能用就好”的主流设计风潮,暂时也不打算花精力去优化了。先把源码管理的基本功能补全再说。

查看类似v8/skia这种十万条提交记录以下中等规模的代码库算是勉强可用。只要不是gcc这种几十年的老代码库,差不多都可以应付。

2021-11-16 23:44
0
雪    币: 5205
活跃值: (3859)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25

搞了三周就搞了这点东西出来:

优化GIT历史记录迭代相关逻辑

实现基于libgit2的代码更新,获取,提交,推送等功能(不依赖于GIT命令行工具)

支持保存git认证信息

添加第三方开源库的授权信息

libgit2/libssh2改用mbedtls后端,以正确支持ssh协议

支持PCAPNG格式分析

优化搜索对话框行为(自动根据选区切换搜索范围)

优化DPI切换性能

部分UI相关BUG修正


发个版本纪念一下。libgit2真够底层的,距离实现git的功能还有一大截路要走。

GIT的内部设计是很不错的,简单又灵活;但它的命令接口把原本简单的设计变得让人有点晕头转向。

2021-12-8 17:16
0
游客
登录 | 注册 方可回帖
返回
//