lor*_*ova 48 theory text-editor editor data-structures
由于我总是对现有的编辑不满意,我一直想要开始的项目是我自己的文本编辑器.然而,进行文本编辑是一项严肃的事
除了分析现有文本编辑器的源代码之外,还有关于这个主题的书籍或其他资源(如学术工作)吗?我特别感兴趣的是教会如何处理内存以及如何管理文本插入的东西(如果你有一个100 MB的文件并想在x位置添加一个字符,你不能只是memmove巨大的文本块......) .
Ste*_*enD 10
这里有一个很好的教程,涵盖了更现代的环境中的许多相关主题:
这个问题的其他答案涵盖了间隙缓冲区.
另一个现代报道是AvalonEdit的描述
以及来自的额外细节:
书中有大量的细节/内容(关于SharpDevelop):
一种仍然有效的旧方法称为间隙缓冲区.基本思想是将文本放入缓冲区,但不是将其全部放在一个块中,而是在光标处创建一个"间隙",将光标前的所有文本放在缓冲区的开头,并且所有文本都放在缓冲区的开头.光标在缓冲区末尾的文本.大多数插入发生在光标处,您可以在不移动任何内容的情况下进行插入(直到或除非您溢出缓冲区).当用户移动光标时,您将相应的文本从分割的一侧移动到另一侧.
给定典型控件(光标向左,向右,向上,向下,向上翻页,向下翻页),您通常处理的最大移动是一次一页,通常比键盘重复快得多.当然,如果你有一个真正庞大的文件和一个"goto line"命令,或者那个命令上的东西,它可以减慢一点.如果你要做很多事情,毫无疑问会有更好的结构使用......
| 归档时间: |
|
| 查看次数: |
9944 次 |
| 最近记录: |