English | 简体中文
A C++17 core with platform-native rendering, built for long-term editor infrastructure in IDEs, AI programming tools, cloud development workspaces, and similar products.
Android / iOS / macOS / Windows / Swing / OHOS / Flutter / Avalonia / Web
SweetEditor is a cross-platform code editor core for products that need consistent editing behavior across supported platforms.
It adopts a "C++17 core + platform-native rendering" architecture: the C++ core is responsible for document editing semantics, text layout, and the decoration model, while each integration layer handles input forwarding and rendering.
It is suited for long-term editor infrastructure in IDEs, AI programming tools, cloud development workspaces, and similar products.
- One unified core, reused across platforms: capabilities such as highlighting, folding, Inlay Hints, Ghost Text, and structural guides are all generated by a single C++ core
- Separation of core and rendering: integration layers focus on input bridging and native drawing, reducing regression risk and maintenance cost across targets
- Comprehensive advanced editing capabilities: supports code folding, snippets, linked editing, diagnostic decorations, completion extensions, and more
- A clear performance path: built on Piece Table, incremental layout, viewport rendering, SIMD Unicode acceleration, and mmap-based large-file loading
- Friendly integration: supports Android, Apple platforms, Windows, Swing, OHOS, Flutter, Avalonia, and Web
| Target | Status | Rendering Technology | UI Framework | Implementation |
|---|---|---|---|---|
| Android | Implemented | Canvas + Paint | Android View | Android README |
| iOS | Implemented | CoreText + CoreGraphics | UIKit / SwiftUI (being refined) | Apple README |
| macOS | Implemented | CoreText + CoreGraphics | AppKit / SwiftUI (being refined) | Apple README |
| Windows | Implemented | GDI+ | WinForms | WinForms README |
| Swing | Implemented | Java2D | Swing | Swing README |
| OHOS | Implemented | ArkUI Canvas | ArkUI | OHOS README |
| Flutter | Implemented | TextPainter | Flutter | Flutter README |
| Avalonia | Implemented | DrawingContext | Avalonia | Avalonia README |
| Qt | Implemented | QPainter | Qt | FinalScave/SweetEditor-Qt |
| Compose Multiplatform | In Progress | Compose Canvas | Compose | lumkit/SweetEditor-Compose |
| Web | Core bindings implemented | WebAssembly | - | Web README |
| C# WinUI | Planned | - | - | - |
+-----------------------------------------------------------------------------------+
| Android | Apple | Swing | WinForms | OHOS | Flutter | Avalonia | Web |
| Input / rendering / native resources / lifecycle |
+-----------------------------------------------------------------------------------+
|
v
+-----------------------------------------------------------------------------------+
| SweetEditor Core (C++17) |
| Document / editing / layout / decorations / interaction / undo and redo |
+-----------------------------------------------------------------------------------+
For the full architecture documentation, see Architecture
The C++ core covers document editing (Piece Table, undo/redo, large-file loading), text layout (word wrapping, incremental layout, viewport clipping), styling and decorations (syntax/semantic highlighting, Inlay Hints, Ghost Text, diagnostics, structural guides), advanced editing (code folding, snippets, linked editing), and platform extension mechanisms (DecorationProvider, CompletionProvider). Performance is built on SIMD Unicode transcoding, measurement caching, and viewport-level rendering.
For the complete capability list, see EditorCore API.
git clone https://github.com/FinalScave/SweetEditor.git
cd SweetEditor
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -jFor quick-start guides, start with the implementation README files below. For bridge and control API details, see the Integration API Index.
SweetEditor editor = new SweetEditor(context);
editor.applyTheme(EditorTheme.dark());
editor.loadDocument(new Document("Hello, SweetEditor!"));For more examples, see the integration API documentation.
The original Android screenshot has a relatively low resolution, so it is displayed here at a smaller width.
SweetEditor follows a minimal-dependency principle. The core runtime depends only on a small set of lightweight libraries:
- simdutf: SIMD-accelerated Unicode encoding and decoding
- nlohmann/json: JSON debug export and internal helper structures
- utfcpp: UTF-8 iteration and validation
Testing uses Catch2.
| Document | Description |
|---|---|
| Architecture | Core architecture, module design, data flow, and rendering pipeline |
| EditorCore API | Reference for the C++ core layer and C API |
| Integration API Index | Entry point for all integration API documents |
| Integration Implementation Standard | Required types, module structure, API contracts, and compliance rules for all integrations |
| Contributing | Repository structure, reading entry points, and platform synchronization checkpoints |
| Target | Guide |
|---|---|
| Android | Android README |
| Apple | Apple README |
| Avalonia | Avalonia README |
| Flutter | Flutter README |
| OHOS | OHOS README |
| Swing | Swing README |
| WinForms | WinForms README |
| Web | Web README |
SweetEditor is building an open ecosystem for cross-platform editor infrastructure, and contributions are welcome.
See Contributing Guide for details.
|
Discord Join Discord |
QQ
QQ Group ID: 1090609035 |
WeChat
|
SweetEditor is licensed under the MIT License.





