Skip to content

v0.17.0

Choose a tag to compare

@lynnswap lynnswap released this 04 Oct 14:52
· 3 commits to main since this release
093da14

SyntaxEditorUI v0.17.0

Breaking Changes

  • Await SyntaxEditorModel.prepare() during asynchronous app setup before creating editor views or comparison models.
  • Minimum OS versions are now iOS and Mac Catalyst 18.4, macOS 15.4, and visionOS 2.4. Swift 6.3 remains the minimum toolchain.
  • ObservationBridge is now pinned to 0.14.0, which depends on ABIBridge 0.8.0. Apps sharing these packages must use compatible dependency requirements.

New Features

  • Added document comparison for SwiftUI, UIKit, and AppKit through SyntaxEditorComparisonModel, SyntaxEditorComparison, and native comparison views and controllers. Choose change markers, inline deletions, or side-by-side panes; navigate changes while preserving the modified document's selection and undo history.
  • Added basic ARM assembly highlighting through SyntaxLanguage.assemblyARM, including asm, arm64, aarch64, and s identifier aliases and comment toggling.

Bug Fixes

  • Model and native editor text updates now preserve normalization-only changes, including replacements between precomposed and decomposed Unicode text.
  • Inferred text replacements now preserve Unicode scalar boundaries, preventing corruption of supplementary characters such as emoji.

Migration Notes

Prepare the runtime once during app startup and await completion:

import SyntaxEditorUI

try await SyntaxEditorModel.prepare()

Handle preparation errors in your app's startup flow. Repeated calls share the same preparation. Plain document models can be created before preparation; editor views and comparison models must wait for it to finish.

Update exhaustive SyntaxLanguage switches to handle .assemblyARM.

Documentation

  • Added DocC guides and API documentation for SwiftUI, UIKit, AppKit, document comparison, languages and themes, editing commands, and migration.

Full Changelog: v0.16.5...v0.17.0