我知道Notepad ++使用了Gap Buffer,而XI编辑器使用了Rope。 但我不知道Visual Studio Code背后的数据结构。
您知道Visual Studio Code中使用了哪种数据结构吗?
答案 0 :(得分:2)
~$ ls ~/.vscode/extensions/donjayamanne.python-0.7.0/pythonFiles/
completion.py isort PythonTools release sortImports.py
completionServer.py preview refactor.py rope
~$
看起来像绳子给我。
答案 1 :(得分:1)
基于 an article on the Visual Studio website about how the text buffer was implemented for Visual Studio Code 1.21,文本缓冲区显然由 piece table 表示 - 一种数据结构,将初始文本存储在一个节点中,然后在其他节点中进行后续编辑。
然后他们通过以下方式提高了性能:
得到作者所说的“带红黑树的多缓冲片表,针对线模型进行了优化”,然后立即缩短为“片树”。