Edit
Explanation
The Edit API associates editors with data types, so that a date is offered a date picker and wiki content a visual editor. It is a registry, not an editor: it answers the question of which editor a piece of data should open in, and leaves the editing itself to the editor it picked. How to use the editors that answer is a different subject, documented under Edit a Page.
Three notions carry the whole topic. A data type is the Java type being edited, such as org.xwiki.rendering.syntax.SyntaxContent for wiki content. An editor is a component able to edit one data type, registered under a role hint that is also its identifier. Because the same data can be edited in more than one way, an editor may declare a category, which is usually the editing mode, text or wysiwyg for wiki content. A category is optional and several editors may share one, which is why the preferred editor is configured per data type and, when it matters, per category.
Editors, Data Types and Categories is the inventory: what a standard XWiki registers, and which editors register for what.
Editors are components, and there are two ways to write one. In Java you implement the Editor role, usually by extending a base class that only asks for a template: Write an Editor in Java. In a wiki page you add one xobject and write the editor's HTML as wiki content, and the component is created and registered for you: Write an Editor in a Wiki Page. Both routes are in use by the editors a standard XWiki ships.
When more than one editor is registered for the same data, one of them has to win. Default Editor Resolution explains the ordered chain of configuration sources that decides it, and the two fallbacks that apply when nothing is configured at all; Configure the Default Editor is how an instance is actually configured, from the administration or with an editor binding xobject.
From a template or a wiki page, the registry is reached through the edit script service, which exposes the same lookups to Velocity. Embed a WYSIWYG Editor in a Form uses it to put a visual editor in a form field that is not bound to any xobject property.
The in-place editing shell belongs to this module as well; how it is switched off, and how a visual editor joins it, are described on the edit script service page.
Taking over an edit lock belongs to the editing flow rather than to this registry: when a Page is already being edited by someone else, XWiki asks the user to confirm before taking the lock over, and Document Edit Lock Confirmation is how an extension waives that question when taking over is harmless.
More
To find more about the current topic, you can search or use the table below and filter the columns to narrow your choices.