The latest published Parley release is 0.3.0 which was released on 2025-02-27. You can find its changes documented below.
This release has an MSRV of 1.82.
PlainEditor::selection_geometry_with
, the equivalent ofSelection::geometry_with
method
- Breaking change:
Collection::register_fonts
now takes aBlob<u8>
instead of aVec<u8>
(#306 by @valadaptive) - Breaking change:
Collection::register_fonts
now takes an optional second parameter which allows overriding the metadata used for matching the font (#312 by @valadaptive)
- Breaking change:
Selection::geometry
,Selection::geometry_with
, andPlainEditor::selection_geometry
now include the line indices that the selection rectangles belong to. (#318 by @valadaptive) - Update to
accesskit
0.18. (#294 by @waywardmonkeys)) - Display selected newlines as whitespace in the selection highlight. (#296 by @valadaptive)
- Make
BreakReason
public. (#300 by @valadaptive)
- Fix text editing for layouts which contain inline boxes (#299 by @valadaptive)
0.3.0 - 2025-02-27
This release has an MSRV of 1.82.
Generation
onPlainEditor
to help implement lazy drawing. (#143 by @xorgy)- Support for preedit for input methods in
PlainEditor
(#192, #198 by @tomcur) PlainEditor
method to get a cursor area for use by the platform's input method (#224 by @tomcur)Layout
methods to calculate minimum and maximum content widths. (#259 by @wfdewith)PlainEditor
now implementsClone
(#133 by @nicoburns)- Navigation and byte selection operations for
PlainEditor
. (#146 by @xorgy) - AccessKit integration (#166 by @mwcampbell)
first_style
method toCluster
(#264 by @nicoburns)
FontStretch
,FontStyle
, andFontWeight
get helper functionsfrom_fontconfig
(#212 by @waywardmonkeys)- Impl
bytemuck
traits forGenericFamily
(#213 by @waywardmonkeys)
- Breaking change: The cursor API has been completely reworked (#170 by @dfrg)
- Breaking change:
PlainEditor
s API is now method-based rather than enum based (#154 by @mwcampbell) - Breaking change:
PlainEditor
's semantics are no longer transactional (#192 by @DJMcNab) - Breaking change:
Alignment::Start
andAlignment::End
now depend on text base direction.Alignment::Left
andAlignment::Right
are introduced for text direction-independent alignment. (#250 by @tomcur) - Breaking change:
Layout
is no longerSync
. (#259 by @wfdewith) - Breaking change:
PlainEditor
's width is nowOption<f32>
rather thanf32
(#137 by @nicoburns) - Breaking change: Make alignment when free space is negative configurable (#241 by @nicoburns)
- Breaking change:
Stretch
,Style
, andWeight
renamed toFontWidth
,FontStyle
,FontWeight
(#211, #223 by @waywardmonkeys) - Depend on
read-fonts
instead ofskrifa
(#162 by @nicoburns)
- Fix alignment of right-to-left text. (#250, #268 by @tomcur)
- Performing line breaking or aligning a layout again, after justified alignment had been applied previously, now lead to the correct results. (#271 by @tomcur)
- Fix placement of inline boxes (#163 by @spirali)
- Cursor position for lines that are not left-aligned (#169 by @mwcampbell)
- Fix
Cursor::from_point
to use the line's offset (#176 by @DJMcNab) - Fix off-by-one error in
PlainEditor::cursor_at
(#187 by @tomcur) - Fix binary search in
Layout::line_for_offset
(#188 by @tomcur) - Fix whitespace collapsing at the start of inline spans (#191 by @nicoburns)
- Fix collapsing selection (#201 by @tomcur)
- Ignore affinities in
Selection::is_collapsed
(#202 by @nicoburns) - Misc. inline box layout fixes (#207 by @nicoburns)
- Allow Bidi
base_level
to be determined from text (#245 by @nicoburns) - Fix linebreaking for lines without text runs (#249 by @wfdewith)
- Correctly calculate trailing whitespace for all lines (#256 by @wfdewith)
- Strip whitespace following a newline when whitespace collapsing is enabled (#254 by @nicoburns)
- Account for inline boxes when collapsing whitespace after newlines (#280 by @nicoburns)
- Skip adding font family as fallback if it has zero coverage for given script (#182 by [@richardhozak]
0.2.0 - 2024-10-10
This release has an MSRV of 1.75.
- Example using tiny-skia which renders into a png (#55 by @nicoburns)
- Breaking change: There is now a blanket implementation for
Brush
.
- Breaking change: There is now a blanket implementation for
- A swash example which renders into a png (#54 by @nicoburns)
- An example with Vello on Winit which shows a basic text editor (#106 by @dfrg)
PlainEditor
, a basic action-based text editor based on ParleySelection
andCursor
(#126 by @xorgy)- Tree style builder (#76 by @nicoburns)
- Conversions for
FontFamily
,FontStack
, andStyleProperty
to make styling more ergonomic (#129 by @xorgy)
- Repository layout updated to match Linebender standard (#59 by @waywardmonkeys)
- Emoji clusters now get an Emoji family added by default (#56 by @dfrg)
- Style builders now accept
Into<StyleProperty<'a, B: Brush>>
so you can push aGenericFamily
orFontStack
directly. (#129 by @xorgy)
- Removed unsafe code from fontconfig cache (#78 by @waywardmonkeys)
- Switched to
windows-rs
fordwrite
backend (#85 by @dfrg)
- Search correct paths for fonts on Apple platforms (#71 by @waywardmonkeys)
- Breaking change: removed conversion to/from
icu_properties::Script
forfontique::Script
(#72 by @waywardmonkeys)- This can be restored by using the
icu_properties
feature offontique
.
- This can be restored by using the
0.1.0 - 2024-05-01
This release has an MSRV of 1.70.
- Initial release