Ein guter Texteditor zum Erlernen der Implementierung?

Ich möchte lernen, wie ein erweiterbarer Texteditor implementiert wird. Mit erweiterbar meine ich die Fähigkeit, die Funktionalität des Hauptprogramms mit Code zu erweitern, der von den Benutzern geschrieben wurde, wie Plugins, Laufzeitkonfigurationsdateien usw.

Welche würdest du empfehlen - vim, emacsoder etwas anderes? Es gibt kilo , das für seinen DIY-Ansatz ziemlich beliebt ist, und ich erwäge das als Ausgangspunkt, aber mein Hauptaugenmerk liegt darauf, zu lernen, wie man eine erweiterbare Software schreibt.

Ich mag ein paar Dinge emacswie die Lesbarkeit der Konfigurationsdatei (einfach Aufrufen von einfachen alten Funktionen mit Argumenten), das Mutieren der Umgebung selbst usw. Es gibt auch einige gute Bücher darüber emacswie The Craft of Text Editing . Ein Nachteil ist jedoch, dass elispes manchmal langsam sein kann.

Ich mag ein paar Dinge vimwie die modale Bearbeitung ( <action> <motion>), die Bearbeitungsgeschwindigkeit usw. Allerdings ist die Konfigurationsdatei manchmal etwas kryptisch, da es hauptsächlich darum geht, einen Schlüsselsatz an einen anderen neu zu binden, was ich nicht wirklich finde lesbar oder intuitiv (intern könnte es auch Funktionen aufrufen, aber die Lesbarkeit ist geringer). Außerdem bin ich mir nicht sicher, ob es Lehrbücher über vimdas Design von gibt?

Hier ist eine sehr nette Ressource, die ich im Internet über Texteditoren gefunden habe: http://texteditors.org/ .

Antworten (2)

Sehen Sie sich den CudaText- Editor an, er ist in Lazarus geschrieben und hat alle möglichen Erweiterungen: Python-Plugins, Farbthemen, Syntax-Lexer usw.

Liste: http://wiki.freepascal.org/CudaText#Add-on_types

Ich denke, es gibt mehrere Ansätze, um etwas erweiterbar zu machen.

Schauen Sie sich Atom an, entwickelt von Github. (atom.io)

Ja, ich dachte, erweiterbar ist auch ein allgemeiner Begriff. Aber ich denke, eine praktische Erfahrung wäre schön.