Releases: simonbs/Runestone
0.2.4
What's Changed
- Moves replace action to front of edit menu by @simonbs in #179
- Adds German and Finnish locales by @amay5267 in #180
- Moves files into separate folders by @simonbs in #183
- Adds missing structure to documentation by @simonbs in #182
- Fixes path to resources for default theme by @simonbs in #185
- Updates French locales and adds Spanish locales by @amay5267 in #181
- Moves logic out of LayoutManager and into separate types by @simonbs in #184
- Fixes an issue where highlight rects were not placed correctly by @simonbs in #186
- No longer moves caret to next line when selecting text by @simonbs in #187
- linePosition(at:) returns correct column number by @simonbs in #188
- Fixes incorrect line fragment width by @simonbs in #189
- Updates caret location after moving lines by @simonbs in #190
- Avoids joining two lines when moving lines to a line that does no end with a line break by @simonbs in #191
- Ensures moveCaret(to:) does not move caret to non-existing line by @simonbs in #192
- Adds support for replacement strings containing \n, \r, and \t by @simonbs in #193
- Fixes default value of isLineWrappingEnabled by @simonbs in #195
- adds Japanese locales by @amay5267 in #194
- Sets contentInsetAdjustmentBehavior = .always in example project by @simonbs in #196
- Makes scrollRangeToVisible(_:animated:) public by @simonbs in #197
- Improves logic for scrolling to a specified range by @simonbs in #198
- 💥 Removes the automaticScrollInset property by @simonbs in #199
- Only enables easy selection of delimiter when selecting text by @simonbs in #200
New Contributors
Full Changelog: 0.2.3...0.2.4
0.2.3
What's Changed
- Adds common symbols for invisible characters to documentation by @simonbs in #174
- Ensures input delegate is informed about the selection change in selectAll(_:) by @simonbs in #176
- node(containingLocation:) returns an optional by @simonbs in #175
- Fixes issue where TextView could not be scrolled by @simonbs in #178
Full Changelog: 0.2.2...0.2.3
0.2.2
What's Changed
- Attempts to fix crash in setMarkedText(_:selectedRange:) by @simonbs in #149
- Decreases width of caret by @simonbs in #151
- Places the caret correctly when navigating between lines by @simonbs in #152
- Adds LineControllerStorage by @simonbs in #150
- fix sample code by @Shinolr in #154
- Add FR localization by @W1W1-M in #155
- Fixes width of selection rects by @simonbs in #156
- Prevents selected range and marked range from being negative by @simonbs in #157
- Uses label color as default caret color by @simonbs in #159
- Fixes incorrect filename by @simonbs in #160
- Fixes issue where theme was not applied initially by @simonbs in #161
- Fixes menu not shown correctly on Catalyst by @simonbs in #163
- LineManager rebuilds tree from string in StringView by @simonbs in #162
- Updates the DefaultTheme by @simonbs in #164
- Improves navigation with the keyboard by @simonbs in #153
- Fixes page guide color in default theme by @simonbs in #165
- Optimizes default them in dark mode for system background color by @simonbs in #166
- Fixes issue where the -textInputViewDidChangeSelection(_:) was called too many times by @simonbs in #167
- Implements isPosition(_:atLineBoundaryInDirection:) by @simonbs in #168
- Adds interactive tutorials to the documentation by @simonbs in #169
- Adds link to tutorials by @simonbs in #170
New Contributors
Full Changelog: 0.2.1...0.2.2
0.2.1
What's Changed
- Support search in a specific range in the text view by @rebornix in #136
- API: convert row/column to offset by @rebornix in #138
- -gestureRecognizerShouldBegin(_:) calls super instead of returning true by @simonbs in #139
- Treats punctuation characters as word boundaries by @simonbs in #140
- Updates caret position when setting string by @simonbs in #143
- Clears undo stack when setting string by @simonbs in #144
- Sets correct selected range when editing marked text by @simonbs in #145
New Contributors
Full Changelog: 0.2.0...0.2.1
0.2.0
What's Changed
- Long pressing to select text would scroll the text view by @simonbs in #97
- Adds Package.resolved by @simonbs in #99
- Updates parser header by @simonbs in #100
- Fixes string range out of bounds by @simonbs in #101
- Exposes more UITextInput functions in TextView by @simonbs in #102
- 💥 Adds matchMethod to SearchQuery by @simonbs in #104
- Adds Package.resolved by @simonbs in #105
- Uses UIMenuEditInteraction on iOS 16 by @simonbs in #92
- Fixes shiftLineLeft(:) and shiftLineRight(:) reversed by @simonbs in #106
- Only inserts text once when shifting left and right by @simonbs in #107
- Removes swift-docc-plugin by @simonbs in #108
- Updates bottom inset to accommodate for keyboard in Example project by @simonbs in #113
- Layout lines up to the specified line by @simonbs in #114
- Notify delegate that the content size has been invalidated by @simonbs in #115
- Adds Go to Line to example project by @simonbs in #116
- Supports scrolling to a range of text by @simonbs in #118
- Adds support for isFindInteractionEnabled by @simonbs in #119
- Fixes incorrect range returned from -customRangeOfComposedCharacterSequences(for:) by @simonbs in #121
- Fixes typo by @simonbs in #123
- Removes extraneous extension in example project by @simonbs in #125
- Add support for line break mode in TextView by @PasiSalenius in #124
- Add Contributing section to README by @simonbs in #126
- Fixes code style by @simonbs in #127
- Disables "Based on dependency analysis" on SwiftLint build phase by @simonbs in #128
- Improves timing when notifying input delegate of selection changes (Thanks Alexander Blach (@blach)!) by @simonbs in #129
- Removes unused code by @simonbs in #133
- Only redisplays visible lines by @simonbs in #134
New Contributors
- @PasiSalenius made their first contribution in #124
Full Changelog: 0.1.2...0.2.0
0.1.2
What's Changed
- No longer applies captures with unsupported predicates by @simonbs in #9
- Uses line break instead of cluster break by @simonbs in #10
- Adds Tree-sitter submoduel with HTTPS by @simonbs in #12
- Fix small typos by @multigreg in #14
- Fixes SwiftLint issues by @simonbs in #20
- Removes unsafe build flag from TreeSitter target by @simonbs in #18
- Removes TreeSitterLanguages dependency from Example project by @simonbs in #22
- Renames editorView to scrollView by @simonbs in #23
- Renames additionalInset to safeAreaInset by @simonbs in #24
- Renames maximumLineWidth to constrainingLineWidth by @simonbs in #25
- Improves comments by @simonbs in #26
- Fixes issue where setupViewHierarchy() didn't remove all subviews by @simonbs in #27
- Removes unused 'animated' parameter by @simonbs in #29
- Returns no selection rects when range is empty by @simonbs in #28
- Ensures caret is visible when moved past trailing edge by @simonbs in #30
- Caps scroll offset to minimum and maximum offset by @simonbs in #31
- Enforces constraining line width by @simonbs in #36
- Splits example project into Swift packages by @simonbs in #37
- Fixes issue where long pressing to select text would scroll by @simonbs in #38
- Adds support for showing non-breaking spaces by @simonbs in #39
- Improves text selection by @simonbs in #33
- Validates predicates of injection captures by @simonbs in #41
- Uses correct font for line numbers by @simonbs in #44
- No longer groups child layers by languages by @simonbs in #45
- Skip empty captures by @simonbs in #46
- Enables Catalyst in Example project by @simonbs in #47
- Fixes crash in compare(_:to:) on Catalyst by @simonbs in #48
- Removes debug code by @simonbs in #49
- Fixes issue where carriage return was not rendered by @simonbs in #52
- Adds support for specifying line endings by @simonbs in #53
- Updates documentation by @simonbs in #54
- Only prepares text for insertion when caused by external event by @simonbs in #55
- Considers Windows-style line breaks (\r\n) a composed character sequence by @simonbs in #56
- Fixes typo in -sendSelectionChangedToTextSelectionView() by @simonbs in #57
- Uses line position to restore selected range when replacing text by @simonbs in #58
- Makes symbol on line ending public by @simonbs in #59
- Fixes -textInputViewDidChangeSelection(_:) called too early by @simonbs in #61
- Add isEditable and isSelectable property to TextView by @twodayslate in #60
- Fix documentation typos by @AndrewBennet in #62
- Fixes linguist by @simonbs in #63
- Adds CODEOWNERS by @simonbs in #64
- Uses byte indices only in -treeSitterLanguageMode(_:bytesAt:) by @simonbs in #65
- -customRangeOfComposedCharacterSequences(for:) builds upon native range by @simonbs in #66
- Removes push to main trigger by @simonbs in #67
- Attempts setting up .spi.yml by @simonbs in #70
- Adds shields to README by @simonbs in #71
- Only runs Build and Test workflow when source has changed by @simonbs in #72
- Adds workflow for building example project by @simonbs in #73
- Uses correct shields in README by @simonbs in #74
- Fixes workflow name by @simonbs in #75
- Adds workflow_dispatch trigger to all workflows by @simonbs in #76
- Adds GitHub shields to README by @simonbs in #77
- Adds Twitter shield to README by @simonbs in #78
- Don't silently absorb error, at least log it in DEBUG mode by @nighthawk in #84
- Prefer `` when linking to symbols within the package by @eliperkins in #83
- Only set
isPrepared
to true after it really is prepared by @nighthawk in #85 - Fixes issue where caret position is not updated by @simonbs in #86
- Updates caret position after toggling line wrapping by @simonbs in #88
- Fixes code style in TextInputStringTokenizer by @simonbs in #89
- Improves handling of text selection by @simonbs in #90
- Scrolls to zero content offset when within text container inset by @simonbs in #91
- Text view would scroll when editing began by @simonbs in #93
- Clears cached highlighted rects when changing theme by @simonbs in #94
- Always insert text when calling
insertText(_:)
programmatically by @nighthawk in #87 - Allow subclassing TextView and overriding certain methods by @nighthawk in #68
- Adds UITextInteractions to TextInputView by @simonbs in #95
- Fixes caret position not updated by @simonbs in #96
New Contributors
- @multigreg made their first contribution in #14
- @twodayslate made their first contribution in #60
- @AndrewBennet made their first contribution in #62
- @nighthawk made their first contribution in #84
- @eliperkins made their first contribution in #83
Full Changelog: 0.1.0...0.2.0
Runestone 0.1.1
Fixes an issue where Runestone could not be used with Swift Package when pinning to a range of versions like from: "0.1.0"
🚀 Runestone 0.1.0
This is the initial release of Runestone, an open source framework for creating performant plain text editors on iPhone and iPad with syntax highlighting, line numbers, a page guide, theming and much more.
The version is published as 0.1.0 to indicate that the public API may not be stable. At this point I've used the framework in my Runestone app for iPhone and iPad so the framework has proven to work but I'm looking for input on the API before considering it stable.