# 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 `