亲手打造一个属于自己的文本编辑器
来源: dbushell.com — 2026-09-01
概述
作者 David Bushell 因为对现有编辑器(VS Code、Sublime Text 等)不满,决定自己动手写一个文本编辑器。他先后尝试了三种方案:先在
核心要点
- 先用 <canvas> 渲染文本,得到极高的绘制自由度,却要把选中、撤销、多行粘贴、滚动这些原本免费的浏览器能力全部手动实现
- contenteditable 的 plaintext-only 值对代码编辑近乎完美,浏览器原生提供文本选中与撤销历史,但 spellcheck 等属性必须禁用以避免输入延迟
- 最终结论:<textarea> 对长文本性能最好,用额外的 DOM 层做可见行的语法高亮即可
- 大量 CSS highlight 是性能瓶颈,更稳妥的做法是用 Tree-sitter 生成语法树、只高亮可见行
- 作者自嘲成果是「1% 的功能做出了 90% 的样子」,剩下全是制表缩进之类的细枝末节
金句
用 1% 的功能,做出了 90% 像个编辑器的样子——剩下的就是照猫画虎、把细节一点点填满。
👍 0
👎 0
返回 Lobsters 首页