Хороший текстовый редактор для изучения реализации?

Я хотел бы узнать, как реализован расширяемый текстовый редактор. Под расширяемостью я подразумеваю возможность расширения функциональности основной программы с помощью кода, написанного пользователями, например плагинов, файлов конфигурации среды выполнения и т. д.

Какой бы вы порекомендовали - vim, emacsили что-то еще? Есть kilo , который довольно популярен благодаря подходу «сделай сам», и я рассматриваю его как отправную точку, но мое основное внимание сосредоточено на том, чтобы научиться писать расширяемое программное обеспечение.

Мне нравятся такие вещи, emacsкак удобочитаемость файла конфигурации (просто вызов старых простых функций с аргументами), изменение самой среды и т. д. Есть также несколько хороших книг, emacsтаких как The Craft of Text Editing . Однако один недостаток заключается в том, что время от elispвремени он может быть медленным.

Мне нравятся некоторые вещи, vimтакие как модальное редактирование ( <action> <motion>), скорость редактирования и т. д. Тем не менее, файл конфигурации временами немного загадочен, потому что он в основном связан с повторной привязкой одного набора ключей к другому, чего я на самом деле не нахожу. читабельный или интуитивно понятный (внутри он тоже может вызывать функции, но удобочитаемость меньше). Кроме того, я не уверен, есть ли учебники по vimдизайну в России?

Вот очень хороший ресурс, который я нашел в Интернете о текстовых редакторах: http://texteditors.org/ .

Ответы (2)

Смотрите в редакторе CudaText , он написан на Lazarus и имеет все возможные расширения: плагины python, цветовые темы, синтаксические лексеры и т.д.

Список: http://wiki.freepascal.org/CudaText#Add-on_types

Я думаю, что есть несколько подходов к созданию чего-то расширяемого.

Посмотрите на Atom, разработанный Github. (атом.ио)

Да, я думал, что расширяемость — это тоже общий термин. Но я думаю, что было бы неплохо получить практический опыт.