Tim*_*ley 14
我曾经为一家主要产品是文本编辑器的公司工作.虽然我主要使用脚本语言,但编辑器本身的内部设计自然是讨论的主要话题.
它似乎分解为两个普遍的思路.一个是您自己存储每一行,然后将它们链接在链接列表或您满意的其他整体数据结构中.优点是任何面向行的编辑操作(例如删除整行,或移动文件中的行块)实现起来都是微不足道的,因此快速闪电.缺点是加载和保存文件需要更多的工作,因为你必须遍历整个文件并构建这些数据结构.
当时的另一个思路是尝试将文字保持在一起而不管换行时的断线,只有在编辑时才需要将它们分开.优点是文件的未编辑大块可以很容易地被发送到文件.如此简单的编辑加载文件,更改一行并保存文件,速度非常快.缺点是面向行或列块操作的执行非常耗时,因为您必须解析这些文本并移动大量数据.
我们始终坚持以线路为导向的设计,无论价值多少,我们的产品被认为是当时最快的编辑之一.
这是2008年.不要写文本编辑器; 你正在重新开火.
还在?我不确定这是否适用或您计划支持哪些平台,但Neatpad系列教程是开始考虑编写文本编辑器的好地方.他们专注于Win32作为基础平台,但许多经验教训将适用于任何地方.