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 base com.codename1.ui.Component that measures, paints, scrolls and hit-tests the document and implements the text input client contract; CodeView and RichView extend 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 by RichTextArea into the styled block/run model the engine renders.

  • SyntaxHighlighter, SyntaxToken, and SyntaxHighlightResult - 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 CodePureEditorThe pure code editor backend.
class CodeViewThe pure code editor surface.
class EditorDocumentThe plain text backing store shared by the pure Codename One editors.
interface EditorHostThe bridge a pure editor view uses to reach the owning editor component and, through it, the platform text input source.
class EditorViewThe pure Codename One text editing surface.
class HtmlImporterParses an HTML string into the pure rich text editor model (plain text plus per character TextStyle and per paragraph RichBlocks.BlockAttr).
class HtmlSerializerSerializes the pure rich text editor model (text + InlineStyles + RichBlocks) back into an HTML string for RichTextArea#getHtml.
class InlineStylesThe per character inline style model for the pure rich text editor.
class LanguageDefDescribes 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 PureEditorThe pure Codename One editor backend.
class RichBlocksThe per paragraph block attribute model for the pure rich text editor.
class RichPureEditorThe pure rich text editor backend.
class RichRunPainterShared 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 RichTextImporterParses supported rich-text interchange formats into the shared editor model.
class RichTextSerializerSerializes the native rich-text model directly to its requested interchange format.
class RichViewThe pure rich text editor surface.
class SyntaxHighlightResultResult of highlighting one source line, including the opaque state passed to the following line.
interface SyntaxHighlighterA pluggable incremental syntax highlighter for CodeEditor.
class SyntaxTokenOne highlighted source span.
class TextStyleAn immutable inline text style (bold / italic / underline / strike, foreground color, highlight color and relative font size) used by the pure rich text editor.
class ThemePaletteThe 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 TokenizerA small, allocation light, stateful lexer for the pure code editor.
class UndoManagerA compact undo / redo stack for the pure editors.