rope_editor 0.0.2
rope_editor: ^0.0.2 copied to clipboard
A lightweight rope-based text editor for Flutter using a Rust backend.
Changelog #
All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.0.2 - 2026-06-11 #
- Fix Lint — Fix up codegen version
- Fix License — Fix license recognition
0.0.1 - 2026-06-11 #
Added #
RopeEditorwidget — monospace editor with optional line gutter, divider, line wrapping, and syntax highlighting via re_highlightRopeEditorController— text editing, selection, clipboard, IME support, dirty-state tracking, and async file loading (loadFromFilewith optionalmaxCharsfor huge single-line files)FindController— find/replace bar with case-sensitive, regex, and whole-word matching; live highlight updates as the document changesUndoRedoController— undo/redo with compound operation merging for rapid typing bursts- Rust-backed text buffer — Zed-style
zed_rope+zed_sum_treefor O(log n) line and offset queries - Batch FFI APIs —
getLineStartOffsetsBatch,getLinesTextBatch,getMinimapDensityBatch,replaceAndCapture,getCursorContext, and cachedgetImeProjectionfor low-latency editing and rendering - Search APIs — full-document, line-range, whole-word, and include/exclude range search, all executed in Rust
- Indentation analysis — style detection and per-line indent queries
- Word navigation — character classes and VS Code-style word boundaries (Ctrl+Arrow, double-click selection)
- LSP offset helpers — UTF-16 ↔ byte conversion and line/column mapping
- Enhanced Dart highlighting —
langDartEnhancedmode - Platform support — Android, iOS, Linux, macOS, and Windows via Cargokit FFI plugin
- Example app — minimal integration demo under
example/ - Documentation — API guides in
doc/and Rust build instructions in README
Changed #
- Migrated the text buffer from
ropeyto Zed's rope implementation, eliminating O(n) metrics rebuilds that caused input lag during undo
License #
- Distributed under GPL-3.0-or-later because the native library links code adapted from Zed's GPL
ropecrate. See LICENSE and NOTICE.