Releases: pop-os/cosmic-text
0.12.1
Links
Changed
- Make collection of monospace fallback information optional
0.12.0
This release focused on resolving some longstanding issues for toolkit use.
Links
Added
- Cache codepoint support info for monospace fonts
- Store a sorted list of monospace font ids in font system
- Add line ending abstraction
- Horizontal scroll support in Buffer
- Concurrently load and parse fonts
- Add metrics to attributes
- Support expanding tabs
- Add an option to set selected text color
- Add Edit::cursor_position
- Allow layout to be calculated without specifying width
- Allow for undefined buffer width and/or height
- Add method to set syntax highlighting by file extension
Fixed
- Fix no_std build
- Handle inverted Ranges in add_span
- Fix undo and redo updating editor modified status
- Ensure at least one line is in Buffer
Changed
- Enable vi feature for docs.rs build
- Convert editor example to winit
- Refactor scrollbar width handling for editor example
- Convert rich-text example to winit
- Only try monospace fonts that support at least one requested script
- Skip trying monospace fallbacks if default font supports all codepoints
- Make vertical scroll by pixels instead of layout lines
- Upgrade dependencies and re-export ttf-parser
0.11.2
Fix glyph start and end when using shape-run-cache
.
Links
0.11.1
This release adds a new shape-run-cache
feature that, when enabled, will cache the results of shaping operations to significantly improve performance, at the cost of increased memory usage. Make sure to trim the cache with the ShapeRunCache::trim
function regularly. Also make sure to set keep_ages
to a large enough value that entries are not removed too early, as minor changes in the source text can switch between active entries (such as adding or removing a space in the middle of a word).
Links
Added
- Add
shape-run-cache
feature, that can significantly improve shaping performance
Removed
- Remove editor-libcosmic, see cosmic-edit instead
0.11.0
This release contains a large refactor (#206), performance improvements, and bug fixes.
Links
Added
- Add function to set metrics and size simultaneously
- Cache
rustybuzz
shape plans - Add capability to synthesize italic
- New wrapping option
WordOrGlyph
to allow word to glyph fallback
Fixed
Buffer::set_rich_text
: Only add attrs if they do not match the defaults- Do not use Emoji fonts as monospace fallback
- Refresh the attrs more often in basic shaping
Buffer
: fix max scroll going one line beyond end- Improve reliability of
layout_cursor
- Handle multiple BiDi paragraphs in
ShapeLine
gracefully - Improved monospace font fallback
- Only commit a previous word range if we had an existing visual line
Changed
- Update terminal example using
colored
- Significant improvements for
Editor
,SyntaxEditor
, andViEditor
- Require default Attrs to be specified in
Buffer::set_rich_text
- Bump
fontdb
to0.16
- Allow Clone of layout structs
- Move cursor motions to new
Motion
enum, move handling toBuffer
- Ensure that all shaping and layout uses scratch buffer
BufferLine
: userlayout_in_buffer
to implement layoutBufferLine
: remove wrap from struct, as wrap is passed to layout- Refactor of scroll and shaping
- Move
color
andx_opt
out of Cursor - Add size limit to
font_matches_cache
and clear it when it is reached - Update
swash
to0.1.12
- Set default buffer wrap to
WordOrGlyph
Removed
- Remove patch to load Redox system fonts, as fontdb does it now
0.10.0
This release brings numerous performance and correctness improvements.
Links
Contributors
The following people contributed to this release. To see all commits included in this release, view this list of commits since 0.9.0
- @dovreshef
- @EHfive
- @genusistimelord
- @grovesNL
- @hecrj
- @Imberflur
- @jackpot51
- @notgull
- @tigregalis
- @urlordjames
Added
- Added
Buffer::set_rich_text
method - Add
Align::End
for end-based alignment - Add more
Debug
implementations - Add feature to warn on missing glyphs
- Add easy conversions for tuples/arrays for
Color
- Derive
Clone
forAttrsList
- Add feature to allow
fontdb
to getfontconfig
information - Add benchmarks to accurately gauge improvements
- Add image render tests
- Allow BSD-2-Clause and BSD-3-Clause licneses in cargo-deny
Fixed
- Fix
no_std
build - Fix
BufferLine::set_align
docs to not mention shape reset is performed - Fix width computed during unconstrained layout and add test for it
- Set
cursor_moved
to true inEditor::insert_string
- Fix
NextWord
action inEditor
when line ends with word boundaries - Fix building
editor-libcosmic
withvi
feature - Respect
fontconfig
font aliases when enabled - Fix rendering of RTL words
Changed
- Unify
no_std
andstd
impls ofFontSystem
- Move
hashbrown
behindno_std
feature - Require either
std
orno_std
feature to be specified - Use a scratch buffer to reduce allocations
- Enable
std
feature withfontconfig
feature - Enable
fontconfig
feature by default - Refactor code in
ShapeLine::layout
- Set MSRV to
1.65
- Make
Edit::copy_selection
immutable - Rewrite
PreviousWord
logic inEditor
with iterators - Use attributes at cursor position for insertions in
Editor
- Update all dependencies
- Use
self_cell
for creating self-referential struct
0.9.0
Links
Added
- Add
Shaping
enum to allow selecting the shaping strategy - Add
Buffer::new_empty
to createBuffer
withoutFontSystem
- Add
BidiParagraphs
iterator - Allow setting
Cursor
color - Allow setting
Editor
cursor - Add
PhysicalGlyph
that allows computingCacheKey
after layout - Add light syntax highlighter to
libcosmic
example
Fixed
- Fix WebAssembly support
- Fix alignment when not wrapping
- Fallback to monospaced font if Monospace family is not found
- Align glyphs in a
LayoutRun
to baseline
Changed
- Update
fontdb
to 0.14.1 - Replace ouroboros with aliasable
- Use
BidiParagraphs
iterator instead ofstr::Lines
- Update
libcosmic
version
Removed
LayoutGlyph
no longer hasx_int
andy_int
, usePhysicalGlyph
instead
0.8.0
Added
FontSystem::new_with_fonts
helper- Alignment and justification
FontSystem::db_mut
provides mutable access tofontdb
databaserustybuzz
is re-exported
Fixed
- Fix some divide by zero panics
- Redox now uses
std
FontSystem
- Layout system improvements
BufferLinke::set_text
has been made more efficient- Fix potential panic on window resize
Changed
- Use
f32
instead ofi32
for lengths FontSystem
no longer self-referencingSwashCash
no longer keeps reference toFontSystem
Removed
Attrs::monospaced
is removed, useFamily::Monospace
instead