package com.codename1.ui.editor
The pure Codename One text editing engine that backs
com.codename1.ui.RichTextArea and com.codename1.ui.CodeEditor.
Overview
This package renders and edits text entirely with the Codename One graphics pipeline - it owns the document model, caret, selection, undo stack, layout and painting, and binds directly to the platform text input source (soft keyboard, autocorrect and IME composition) rather than embedding a native web view. Because the engine draws every glyph itself it behaves consistently across platforms and supports mixed left-to-right and right-to-left text via the Unicode Bidirectional Algorithm.
Key types
EditorDocument- the mutable character buffer with a line index that caret, selection, undo and the platform input source all operate on.EditorView- the basecom.codename1.ui.Componentthat measures, paints, scrolls and hit-tests the document and implements the text input client contract;CodeViewandRichViewextend it for the code and rich text feature layers.BidiUtil- the Unicode Bidirectional Algorithm used to resolve embedding levels and reorder mixed-direction runs for measurement and paint.HtmlImporter- parses the HTML fragment accepted byRichTextAreainto the styled block/run model the engine renders.SyntaxHighlighter,SyntaxToken, andSyntaxHighlightResult- the public extension contract for incremental third-party code highlighting.
These classes are the implementation of the two public editor components;
applications normally interact with RichTextArea and CodeEditor, while
syntax-highlighting extensions implement the public contract in this package.
Types
class CodePureEditor | The pure code editor backend. |
class CodeView | The pure code editor surface. |
class EditorDocument | The plain text backing store shared by the pure Codename One editors. |
interface EditorHost | The bridge a pure editor view uses to reach the owning editor component and, through it, the platform text input source. |
class EditorView | The pure Codename One text editing surface. |
class HtmlImporter | Parses an HTML string into the pure rich text editor model (plain text plus per character TextStyle and per paragraph RichBlocks.BlockAttr). |
class HtmlSerializer | Serializes the pure rich text editor model (text + InlineStyles + RichBlocks) back into an HTML string for RichTextArea#getHtml. |
class InlineStyles | The per character inline style model for the pure rich text editor. |
class LanguageDef | Describes the lexical rules of a programming language for the pure code editor’s tokenizer: its keyword set, comment styles, string delimiters and number syntax. |
class PureEditor | The pure Codename One editor backend. |
class RichBlocks | The per paragraph block attribute model for the pure rich text editor. |
class RichPureEditor | The pure rich text editor backend. |
class RichRunPainter | Shared inline-run styling primitive for the rich text subsystem: it turns a TextStyle plus a paragraph block type into a concrete pixel size and derived Font, and paints one styled run (foreground color, highlight background, inline-code tint, underline and strike-through decorations). |
class RichTextImporter | Parses supported rich-text interchange formats into the shared editor model. |
class RichTextSerializer | Serializes the native rich-text model directly to its requested interchange format. |
class RichView | The pure rich text editor surface. |
class SyntaxHighlightResult | Result of highlighting one source line, including the opaque state passed to the following line. |
interface SyntaxHighlighter | A pluggable incremental syntax highlighter for CodeEditor. |
class SyntaxToken | One highlighted source span. |
class TextStyle | An immutable inline text style (bold / italic / underline / strike, foreground color, highlight color and relative font size) used by the pure rich text editor. |
class ThemePalette | The color palette for the pure code editor, mirroring the light (GitHub style) and dark (VS Code style) themes used by the previous BrowserComponent backend so switching backends is visually consistent. |
class Tokenizer | A small, allocation light, stateful lexer for the pure code editor. |
class UndoManager | A compact undo / redo stack for the pure editors. |