rope_editor 0.2.0 copy "rope_editor: ^0.2.0" to clipboard
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 modeOrchestrateRequest.planMode biases the agent toward read-only planning and conversational exploration; /plan [task] and natural-language planning requests route to a new Plan intent
  • Execution modeOrchestrateRequest.executionMode raises 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 parsingextract_repl_plan_message and extract_plan_body split 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: OrchestrateRequest now requires planMode and executionMode (pass false for prior behavior)
  • Ambiguous or mixed edit/question messages default to conversational chat instead of a disambiguation prompt
  • Removed AgentIntent::Disambiguate; routing uses Clarify for those cases
  • route_intent accepts a plan_mode flag 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, and orchestrateCancelStale; emits OrchestrateEvent updates (thinking, edit deltas, context window/budget, completion, errors)
  • Agent edit pipelineapplyAgentEdit, EditorAction/EditorActionKind, getContextForRange, and RopeEditorController.applyAgentActions for atomic multi-edit application with undo support
  • OrchestrateEventDispatchdispatch extension for routing streaming orchestrator events to host-app callbacks
  • editorTheme on RopeEditor — 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-dark highlight themes to the editor

Dependencies #

  • Added freezed_annotation (^2.4.4) for AgentResponse and OrchestrateEvent sealed unions

0.0.4 - 2026-06-12 #

  • Update dependency — Updated the flutter_rust_bridge dependency 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 #

  • RopeEditor widget — monospace editor with optional line gutter, divider, line wrapping, and syntax highlighting via re_highlight
  • RopeEditorController — text editing, selection, clipboard, IME support, dirty-state tracking, and async file loading (loadFromFile with optional maxChars for huge single-line files)
  • FindController — find/replace bar with case-sensitive, regex, and whole-word matching; live highlight updates as the document changes
  • UndoRedoController — undo/redo with compound operation merging for rapid typing bursts
  • Rust-backed text buffer — Zed-style zed_rope + zed_sum_tree for O(log n) line and offset queries
  • Batch FFI APIsgetLineStartOffsetsBatch, getLinesTextBatch, getMinimapDensityBatch, replaceAndCapture, getCursorContext, and cached getImeProjection for 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 highlightinglangDartEnhanced mode
  • 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 ropey to 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 rope crate. See LICENSE and NOTICE.