Skip to content

Commit 8e01a9e

Browse files
committed
Update CHANGELOG with 2.3.1–2.3.6 releases and refine 2.3.0 notes
- Add TextKit2 viewport/layout convergence, safe relayout, and post-layout selection scroll handling - Fix viewport bounds calc, gutter offset/width issues, and ensure viewport range layout - Track speech state via AVSpeechSynthesizer delegate; validate Stop Speaking - Improve large selection delete performance (#107) - Resolve NavigationSplitView crash (#102); add ignoresSafeArea; reset typing attributes and introduce resetTypingAttributes() - Fix sizeToFit() gutter width handling (#101) - Major accessibility improvements (VoiceOver, selection, scrolling, traits, notifications) in 2.3.3 - Adjust layout fragment height handling (2.3.2) - Color/appearance and typing attribute updates (2.3.1) - Rework 2.3.0 section: consolidate features, fixes, refactors, and tests
1 parent c7fa1cd commit 8e01a9e

1 file changed

Lines changed: 121 additions & 39 deletions

File tree

CHANGELOG.md

Lines changed: 121 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,129 @@
11
# Changelog
22

3+
## [2.3.6] - 2026-03-20
4+
5+
### Changed
6+
- Optimize TextKit2 scrolling by ensuring layout and relocating viewport
7+
- Defer relayout during active layout to prevent recursion; add inLayout and setNeedsLayoutSafe
8+
- Add convergence loop for text layout viewport with needsRelayout flag
9+
- Replace scroll-to-selection flag with one-shot postLayoutAction executed after layout
10+
- Ensure selection is scrolled post-layout via one-shot postLayoutAction
11+
- Refactor viewport layout: move convergence loop into layoutViewport() and call it from layoutText()
12+
- Ensure layout for current viewport range during viewport updates
13+
- Fix viewportBounds: adjust for gutter offset, use contentView coords and width, perform Y-only union, clamp negative origins
14+
- Track speech state via AVSpeechSynthesizer delegate and fix Stop Speaking validation
15+
- Speed up large selection deletes in [#107](https://github.com/krzyzanowskim/STTextView/pull/107)
16+
17+
## [2.3.5] - 2026-01-14
18+
19+
### Changed
20+
- Resolve crash within NavigationSplitView in v2.3.4 in [#102](https://github.com/krzyzanowskim/STTextView/pull/102)
21+
- Add ignoresSafeArea to STTextView to allow full-screen display
22+
- Refactor typing attribute reset logic by replacing direct assignment with resetTypingAttributes()
23+
- Add resetTypingAttributes() to reset typing attributes to default values
24+
- Reset typing attributes when setting new text or attributedText
25+
26+
## [2.3.4] - 2026-01-06
27+
28+
### Changed
29+
- Update test to reflect initial selection behavior in STTextView
30+
- Update iOS Simulator device from iPhone 17 Pro to iPhone 16 in test workflow
31+
- Run tests on all tags and update test scheme and simulator in CI configuration
32+
- Add workflow_dispatch trigger to GitHub Actions test workflow
33+
- Add GitHub Actions workflow for testing on macOS and iOS
34+
- Fix sizeToFit() not including gutter width in frame calculation in [#101](https://github.com/krzyzanowskim/STTextView/pull/101)
35+
36+
## [2.3.3] - 2026-01-04
37+
38+
### Changed
39+
- Improve VoiceOver accessibility for STTextView by refining traits and escape handling
40+
- Refine accessibility notification for selection change and remove unused method
41+
- Add accessibility scroll support to STTextView for VoiceOver users
42+
- Improve accessibility support for STTextView including VoiceOver and UI testing
43+
- Fix accessibilityRange to detect trailing newlines via NSString instead of textContentManager
44+
- Improve accessibility line range calculation and add support for setting insertion line
45+
- Add accessibility support for edited state, insertion point line, and help text
46+
- Improve accessibility support for text character range and hit testing
47+
- Improve accessibility by implementing accessibilitySelectedTextRanges and posting valueChanged notification
48+
- Add accessibility support to STTextView for VoiceOver and text selection
49+
50+
## [2.3.2] - 2026-01-02
51+
52+
### Changed
53+
- Improve layout fragment height calculation to handle incomplete layout cases
54+
55+
## [2.3.1] - 2025-12-30
56+
57+
### Changed
58+
- Ensure gutter view background color matches text view background color
59+
- Fix background and text color updates when appearance changes in GutterView
60+
- Ensure typing attributes are updated after text replacement
61+
- Ensure STTextView updates typing attributes after processing text service input
62+
363
## [2.3.0] - 2025-12-23
464

5-
### Added
6-
- [macOS] Add snapshot tests for STTextView gutter rendering with various configurations
7-
- [iOS] Add background blur effect to STGutterView when backgroundColor is nil
8-
- [SwiftUI] Add environment-based lineHeightMultiple support in text views
9-
- [SwiftUI] Add support for configurable lineHeightMultiple in TextView
10-
- [SwiftUI/iOS] Add support for custom contentInsets to TextView
11-
- [SwiftUI] Add showLineNumbers option and autocorrectionDisabled modifier to TextView
12-
- [Shared] Expose contentFrame property to Plugins SPI
13-
14-
### Changed
15-
- [iOS] Rename STContentView to STTextContainerView and add lightweight content size update
16-
- [iOS] Optimize text view layout fragment rendering by reusing existing views
17-
- [iOS] Adjust layout to respect textContainerInset in STTextView
18-
- [iOS] Adjust viewportBounds to account for textContainerInset for better fragment coverage
19-
- [iOS] Improve viewport bounds calculation to account for adjustedContentInset
20-
- [iOS] Refactor gutter width adjustment logic to reduce redundant checks and improve layout stability
21-
- [iOS] Make text, attributedText, and showsLineNumbers properties open and objc
22-
- [macOS] Improve layout and drawing logic for STTextRenderView with clipsToContent support
23-
- [macOS] Improve STTextRenderView layout to match actual rendering behavior
24-
- [macOS] Improve selection image frame and origin during drag-and-drop
25-
- [macOS] Adjust line fragment drawing position to account for line height multiple offset
26-
- [macOS] Refactor STTextView layout system for improved viewport stability and accuracy
27-
- [AppKit & UIKit] Ensure fragment views are marked for display when layout or rendering changes occur
28-
- [SwiftUI] Refactor TextView options into shared TextViewOptions struct and extend platform support
29-
- [SwiftUI] Refactor TextView view and coordinator for cleaner bindings and guard logic
30-
- [SwiftUI] Optimize font updates in TextView by caching last applied font
31-
- [Shared] Enable SwiftFormat with customized configuration and makefile tasks
32-
- [Shared] Update platform and toolchain requirements
65+
### Changed
66+
- Release 2.3.0
67+
- Add changelog entries for upcoming release with new features, fixes, and refactors
68+
- Improve gutter rendering, alignment, and layout behavior across platforms
69+
- Expose contentFrame property to Plugins SPI and set GITHUB_TOKEN for git-cliff
70+
- Add background blur effect to STGutterView when backgroundColor is nil
71+
- Fix .wrapLines option logic and improve UI toggles and editable state handling
72+
- Prevent selection change handling when isUpdating is true in TextViewRepresentable
73+
- Remove .baselineOffset from supported text attributes in AppKit and UIKit views
74+
- Refactor TextView view and coordinator for cleaner bindings and guard logic
75+
- Optimize font updates in TextView by caching last applied font
3376
- Refactor README to consolidate and simplify SwiftUI usage documentation
34-
35-
### Fixed
36-
- [iOS] Fix gutter alignment to scroll only vertically and remain fixed horizontally
37-
- [iOS] Defer scrolling to selection until layoutSubviews for better layout consistency
38-
- [macOS] Fix text view jumping by allowing growth of height but preventing shrinkage
39-
- [macOS] Fix dynamic height adjustment and layout behavior in STTextView
40-
- [macOS] Fix text view shrinkage and scroll issues when editing or resetting large documents
41-
- [macOS] Fix layout issue for gutter view with NSScrollView content insets
42-
- [macOS] Prevent text view from resizing below current scroll position
43-
- [SwiftUI] Fix .wrapLines option logic and improve UI toggles and editable state handling
44-
- [SwiftUI] Prevent selection change handling when isUpdating is true in TextViewRepresentable
77+
- Add showLineNumbers option and autocorrectionDisabled modifier to TextView
78+
- Remove support for explicitly setting text view editability via parameter or environment
79+
- Add environment-based lineHeightMultiple support in SwiftUI text views
80+
- Add support for explicitly setting isEditable in TextView for SwiftUI integration
81+
- Add support for configurable lineHeightMultiple in TextView
82+
- Add support for custom contentInsets to TextView
83+
- Refactor TextView options into shared TextViewOptions struct and extend platform support
84+
- Fix property name showsLineNumbers and remove sponsors section from README
85+
- Update platform and toolchain requirements; bump STTextView to version 2.2.0
86+
- Make text, attributedText, and showsLineNumbers properties open and objc
87+
- Ensure fragment views are marked for display when layout or rendering changes occur
88+
- Adjust viewportBounds to account for textContainerInset for better fragment coverage
89+
- Fix gutter alignment to scroll only vertically and remain fixed horizontally
90+
- Defer scrolling to selection until layoutSubviews for better layout consistency
91+
- Adjust layout to respect textContainerInset in STTextView
92+
- Refactor gutter width adjustment logic to reduce redundant checks and improve layout stability
93+
- Improve viewport bounds calculation to account for adjustedContentInset
94+
- Refactored text layout logic and improved container resizing behavior
95+
- Optimize text view layout fragment rendering by reusing existing views
96+
- Rename STContentView to STTextContainerView and add lightweight content size update
97+
- Improve layout and drawing logic for STTextRenderView with clipsToContent support
98+
- Adjust line fragment drawing position to account for line height multiple offset
99+
- Improve selection image frame and origin during drag-and-drop
100+
- Improve STTextRenderView layout to match actual rendering behavior
101+
- Move line height adjustment constant outside conditional for clarity and reuse
102+
- Enable SwiftFormat with customized configuration and makefile tasks
103+
- Refactor STTextView layout system for improved viewport stability and accuracy
104+
- Fix text view jumping by allowing growth of height but preventing shrinkage
105+
- Fix dynamic height adjustment and layout behavior in STTextView
106+
- Remove unused scrollView check in layoutGutterLineNumbers
107+
- Remove complex resize and scroll adjustment logic during layout update
108+
- Adjust gutter line number position by removing contentInsets offset
109+
- Fix text view shrinkage and scroll issues when editing or resetting large documents
110+
- Add snapshot test for gutter with extra line fragment and adjust scrolled view test
111+
- Ensure consistent scrollbar appearance during snapshot tests by setting UserDefaults
112+
- Add snapshot tests for STTextView gutter rendering with various configurations
113+
- Add snapshot tests for STTextView and integrate SnapshotTesting on macOS
114+
- Annotate ContentTests and TypingAttributesTests with @MainActor
115+
- Add comment explaining workaround for scroll position resizing issue
116+
- Prevent text view from resizing below current scroll position
117+
- Revert "Use needsViewportLayout flag instead of needsLayout for viewport-related updates"
118+
- Use needsViewportLayout flag instead of needsLayout for viewport-related updates
119+
- Remove redundant layoutGutter() call from setFrameSize()
120+
- Adjust STTextView sizeToFit to account for scroll view content insets
121+
- Adjust scroll view top constraint to align with view's top anchor instead of safe area
122+
- Fix layout issue for gutter view with NSScrollView content insets
123+
- Update README: reorganize sections, update requirements, and improve clarity
124+
- Use safe area constraints for scroll view when using fullSizeContentView style
125+
- Remove traitCollectionDidChange override from STGutterView
126+
- Improve layout handling and add tolerance support for geometric equality checks
45127

46128
## [2.2.8] - 2025-11-11
47129

0 commit comments

Comments
 (0)