English | 简体中文
A C++17 core with platform-native rendering, built for long-term evolving editor infrastructure in IDEs, AI programming tools, cloud development workspaces, and similar products.
Issues and pull requests are welcome.
To check out all docs, please visit: Documentation Site
This repository is still in the development stage, so please pay attention.
- Native editor kernel (C++17) with Compose Multiplatform wrapper
- Cross-platform targets: Android, iOS, JVM Desktop, JS, Wasm
- Render-model driven architecture (viewport, scroll metrics, cursor/selection rects)
- Syntax/semantic span rendering with batch style registration
- Decoration pipeline: inlay hints, phantom text, gutter icons, diagnostics
- Guide and structure rendering: indent guides, bracket guides, flow guides, separator guides, fold regions
- Rich visual affordances: fold markers, linked-editing highlights, bracket highlights, active scrollbars, pointer cursor hints
- Cursor and selection operations with 0-based line/column semantics
- Selection handle drag state callbacks, hit-target reporting, and context-menu request callbacks
- Editing primitives: insert, replace, delete, backspace, delete-forward
- Line operations: move/copy line up/down, delete line, insert line above/below
- Undo/redo stack integration
- Snippet insertion and linked-editing session support
- Completion pipeline with provider API, popup anchoring, item selection, and custom item renderer
- IME composition lifecycle: start/update/end/cancel
- Gesture and key event bridge to native input model
- Document loading from UTF-16 text and file path
- Read-only mode, wrap mode, auto-indent mode, gutter visibility/sticky options
- Configurable appearance: theme content loading, font configuration, current-line render mode, line spacing, fold arrow mode
The native editor core used by this project is based on the open-source OpenSweetEditor repository:
SweetEditor is licensed under the GNU Lesser General Public License v2.1 or later (LGPL-2.1+), with an additional Static Linking Exception provided as a supplementary clarification.


