All notable changes to @workspace-sh/react-native-source-editor will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Pre-1.0, the JS API may evolve between minor versions. See the README's roadmap.
- Android support. Bare RN Fabric component wrapping Sora-Editor 0.23.6 (LGPL-2.1, consumed dynamically as a Gradle
implementationAAR). Targets react-native 0.81 New Architecture, minSdk 24. (#34, closes #33) - TextMate syntax highlighting on Android for the existing six languages (markdown / json / javascript / typescript / html). VS Code 1.94.0 grammars +
darcula.jsontheme bundled as Android assets. (#36, closes #35) font,contentInsets,lineNumberson Android.font→ SoratypefaceText+textSize;contentInsets→View.setPaddingwith dp→px conversion;lineNumbers→editor.isLineNumberEnabled. (#38, closes #37)themeprop on Android.light/darkmap to bundled TextMate themes;autoreadsConfiguration.UI_MODE_NIGHT_MASK. (#40, closes #39)- Expo config plugin: Android support.
app.plugin.jsnow also injectscoreLibraryDesugaringintoandroid/app/build.gradle(Sora's TextMate AAR requires it on minSdk < 26). Same plugin entry covers both platforms. (#36) - CI: Android + macOS jobs. GitHub Actions now builds all three platforms on every PR. (#42, closes #41)
example/ios-app/→example/expo-app/. Same Expo CNG project now serves both iOS and Android — Expo prebuild generatesios/andandroid/from the same source. The bare-RNexample/macos-app/stays separate (Expo doesn't support macOS). (#34)
0.1.0 — 2026-05-10
First milestone tag. Both target platforms shipping; library not yet on npm (install via local path until v1.0).
- macOS support. Bare react-native-macos 0.81 + Xcode 26 + Fabric. Wires STTextView via React Native's first-party
spm_dependencyhelper fromreact_native_pods.rb, sidestepping a cocoapods-spm × Xcode 26 regression that was the actual blocker for macOS. (#30, closes #27) lineNumbersprop. Runtime-toggleable STTextView gutter on both iOS and macOS — flipping the prop adds/removes the gutter view in place without remounting. (#29, closes #10)- Syntax highlighting + Markdown WebView preview. Plaintext, Markdown, JSON, JavaScript, TypeScript, HTML languages with system-themed token colours. (#24, closes #23)
- Expo config plugin.
app.plugin.jsinjectscocoapods-spm+ theSTTextViewSPM package into the Expo CNG-generated Podfile duringexpo prebuild, so consumers don't hand-edit the Podfile. (#22, closes #21) - Font + theme props.
font: { family, size },theme: 'light' | 'dark' | 'auto'. (#16) contentInsetsprop. Padding inside the editor's text container.- JS API surface. Controlled/uncontrolled
value/defaultValue,editable,onChangeText,onSelectionChange, imperativefocus()/blur()/getSelection()ref handle. (#15) - iOS native impl. STTextView via UIKit. (#13)
- macOS native impl. STTextView via AppKit. (#14)
- CI. GitHub Actions workflow runs typecheck + iOS build on PRs targeting
develop. (#19) - Example apps.
example/ios-app/(Expo SDK 55 CNG, runnable vianpm run ios:run) andexample/macos-app/(bare RN-macos, runnable vianpm run macos:dev). (#18)
- Refactored from create-expo-module scaffold to a bare RN Fabric library. Library now publishes its own podspec at the root and uses RN codegen directly (
codegenNativeComponent/codegenNativeCommands); Expo CNG consumes it as a regular RN dependency rather than as an Expo Module. (#26)