rope_editor 0.2.0
rope_editor: ^0.2.0 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.2.0 - 2026-06-15 #
Added #
- Plan mode —
OrchestrateRequest.planModebiases the agent toward read-only planning and conversational exploration;/plan [task]and natural-language planning requests route to a newPlanintent - Execution mode —
OrchestrateRequest.executionModeraises auto-continue limits for multi-step plan execution turns PlanStreamSplitter— streams conversational REPL text separately from the<<PLAN>>body while plan responses arrive token-by-token- Plan output parsing —
extract_repl_plan_messageandextract_plan_bodysplit model output at the<<PLAN>>sentinel - Multi-file edit prompts — when multiple files are in scope, edit prompts request
<<FILE>>/<<END_FILE>>blocks per file
Changed #
- Breaking:
OrchestrateRequestnow requiresplanModeandexecutionMode(passfalsefor prior behavior) - Ambiguous or mixed edit/question messages default to conversational chat instead of a disambiguation prompt
- Removed
AgentIntent::Disambiguate; routing usesClarifyfor those cases route_intentaccepts aplan_modeflag to apply plan-mode routing rules
Dependencies #
freezed_annotation(^2.4.4 → ^3.1.0),freezed(^2.5.7 → ^4.0.0-dev.3)ffigen(^11.0.0 → ^20.1.1),flutter_lints(^3.0.0 → ^6.0.0)
0.1.0 - 2026-06-14 #
Added #
- Rust orchestrator — streaming and sync agent orchestration via
orchestrateRequest,orchestrateRequestSync, andorchestrateCancelStale; emitsOrchestrateEventupdates (thinking, edit deltas, context window/budget, completion, errors) - Agent edit pipeline —
applyAgentEdit,EditorAction/EditorActionKind,getContextForRange, andRopeEditorController.applyAgentActionsfor atomic multi-edit application with undo support OrchestrateEventDispatch—dispatchextension for routing streaming orchestrator events to host-app callbackseditorThemeonRopeEditor— optional syntax-highlighting theme map for root, gutter, selection, and cursor styling- Mouse click selection — double-click selects a word; triple-click selects a line
Changed #
- Example app follows system light/dark mode and passes
github/github-darkhighlight themes to the editor
Dependencies #
- Added
freezed_annotation(^2.4.4) forAgentResponseandOrchestrateEventsealed unions
0.0.4 - 2026-06-12 #
- Update dependency — Updated the
flutter_rust_bridgedependency to 2.12.0
0.0.3 - 2026-06-12 #
- Fix license — Second attempt
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