投影式阅读器实验:把实现细节「折叠」出视野
来源:programmingsimplicity.substack.com — programmingsimplicity.substack.com · 13 分 · by surprisetalk
📋 概述
Paul Tarvydas 的实验想解决一件事:现代语言把结构埋在实现细节底下,信噪比太低——*怎么做* 太多,*要做什么* 看不清。他的做法不是删掉细节,而是让细节「折叠」出视野:源码里还在,编辑器里可以切换显示。触发点是 PEG 解析库——他懂语法,但多数 PEG 实现会把语法本身淹没在捕获匹配、解析后动作的代码里。完整的双向投影式编辑器很难写好,于是这次实验退一步只做单向:只负责阅读时的折叠,不支持编辑折叠形态。他让 Claude 写了一个 Emacs Lisp 文件,把缓冲区或选区送到 T2T 管线(OhmJS 解析器加 RWR 重写语义),取回折叠后的语法再显示回编辑器。目前只在一个 Rebol 的电话号码语法例子上验证过,折叠效果可读性明显更好,切换几乎无延迟,但泛化能力仍是开放问题。
🔑 核心要点
- 目标是把实现细节折叠出视野,而不是把它从源码里删掉。
- 触发场景是 PEG 库把语法本身淹没在匹配与动作代码里。
- 实验只做单向折叠,不追求双向可编辑的投影式编辑器。
- 管线是 OhmJS 解析加 RWR 重写语义,由 Emacs Lisp 驱动。
- 目前仅在一个Rebol 电话号码语法上验证,泛化仍待观察。
💡 金句
细节还在源码里,只是被折了起来——你想看结构的时候,它就不挡路。
👍 0
👎 0
← 返回 Hacker News 首页