我知道 Notepad++ 使用 Gap Buffer,而 XI 编辑器使用 Rope。但我不知道 Visual Studio Code 背后的数据结构。
你知道 Visual Studio Code 中使用了哪种数据结构吗?
我知道 Notepad++ 使用 Gap Buffer,而 XI 编辑器使用 Rope。但我不知道 Visual Studio Code 背后的数据结构。
你知道 Visual Studio Code 中使用了哪种数据结构吗?
根据Visual Studio 网站上关于如何为 Visual Studio Code 1.21 实现文本缓冲区的文章,文本缓冲区显然由一个片段表表示- 一种将初始文本存储在一个节点中的数据结构,然后在其他节点。
然后,他们通过以下方式改进了性能:
得到作者所说的“带有红黑树的多缓冲块表,针对线模型进行了优化”,然后立即缩短为“块树”。
~$ ls ~/.vscode/extensions/donjayamanne.python-0.7.0/pythonFiles/
completion.py isort PythonTools release sortImports.py
completionServer.py preview refactor.py rope
~$
对我来说就像绳子。