Есть ли библиотеки для эффективного редактирования больших строк в Javascript? - PullRequest
5 голосов
/ 28 марта 2011

Мне нужно эффективно редактировать большие текстовые документы (например, файлы исходного кода) в javascript.

insertAtPosition(n, str) и deleteAtPosition(n, length) должны быть быстрыми.

Реализация простой строки медленная, поскольку каждая операция требует копирования содержимого документа в новую строку.

Есть несколько эффективных способов сделать это. Я мог бы использовать массив строк ( Ace aka Bespin делает это), но это было бы медленно, когда есть супер длинные или много коротких линий. Лучшая реализация будет использовать пропуск списков или некоторую другую умную структуру данных.

Но я бы ожидал, что кто-то уже реализовал такую ​​вещь.

Есть ли библиотеки, которые уже делают это? Кажется, я не могу найти ничего полезного в Google - есть ли общее название для этой проблемы алгоритма?

1 Ответ

2 голосов
/ 29 марта 2011

Я не думаю, что есть какие-то другие библиотеки для этого, поэтому я реализовал это сам, используя списки пропусков. Возможно, было бы быстрее использовать древовидную структуру данных, но списки пропусков легко реализовать, а скомпилированный закрывающий javascript составляет всего 2,5 КБ.

Если есть кто-то еще с такой же проблемой, наслаждайтесь:

https://github.com/josephg/jumprope

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...