####################### Editor module structure ####################### This document explains the structure of the editor module and overview of classes. Introduction ============ This module implements the builtin editors of editable elements or documents, and this does **not** implement the interface with DOM API and visual feedback of the editing UI. In other words, this module implements DOM tree editors. Directories =========== composer -------- Previously, this directory contained "Composer" UI related code. However, currently, this directory contains ``nsEditingSession`` and ``ComposerCommandsUpdater``. libeditor --------- This is the main directory which contains "core" implementation of editors. spellchecker ------------ Despite of the directory name, implementation of the spellchecker is **not** here. This directory contains only a bridge between editor classes and the spellchecker and serialized text of editable content for spellchecking. txmgr ----- This directory contains transaction items and transaction classes. They were designed for generic use cases, e.g., managing undo/redo of bookmarks/history of browser, etc, but they are used only by the editor. Main classes ============ EditorBase ---------- ``EditorBase`` class is an abstract class of editors. This inherits ``nsIEditor`` XPCOM interface, implement common features which work with instance of classes, and exposed by ``mozilla/EditorBase.h``. TextEditor ---------- ``TextEditor`` class is the implementation of plaintext editor which works with ```` and ``