v0.7.0-alpha.2: 0.7.0-alpha.2 — `TextInput` improvements
Pre-releaseTextInput
has gotten a massive boost, and is now a proper text editor. On top of that, its subclass, CodeInput
is now available with optional syntax highlighting (a separate package is available on DUB: fluid-tree-sitter
). Both are full in terms of completeness and behave a lot like native or well-known editors. This is a significant step forward and it highlights Fluid's possibilities and maturity as a general library.
0.7.0 is currently exactly equal to 0.6.0 in terms of commits, scoring 171 commits since 0.6.3, for a total of 342 commits since 0.5.2. Fluid has reached a milestone of 500 commits!
Further improvements may still be performed, for example selection may be moved to Text
.
New features:
- ModuleView: New experimental and optional node for displaying Ddoc documentation with Fluid. Includes support for live, editable examples. Incomplete.
- ProgressBar: A new node for indicating progress.
- CodeInput: A new code editor node has been added, which supports syntax highlighting and automatic indents.
- Rope: Fluid now uses
Rope
instead ofstring
in all context where text rendering is involved. This is a significant change as it greatly influences all workflow surrounding text rendering. However, it is in great compatibility with original strings, so in many scenarios the change is not noticeable. - FluidScrollable: A new interface is available in
fluid.scroll
that makes it possible to define a scrollable node in a uniform manner. - Text: Massive optimizations in terms of performance involving large amounts of text. Text will only be rasterized once it reaches the screen. Low level API is exposed through
CompositeTexture
. - TextInput: Multiline TextInput is now available with the
.multiline
node property. A separate constructor may be added in the future. - TextInput: The caret now can be moved using arrow keys or the mouse.
- TextInput: Text can now be selected, copied, pasted.
- TextInput: Support for undo and redo was added.
- Image & Texture: Images now support two new formats, and Textures support two corresponding rendering modes in order to support texture masks and palettes.
- TagList: New method
remove
can be used to remove tags. - FrameButton:
hframeButton
is now available.
Removed features:
- SimpledisplayBackend has been removed. arsd.simpledisplay no longer supports the D language and has moved on to OpenD.
Deprecations:
Grid
has been renamed toGridFrame
. (Thanks @LiamM32)frameButton
has been renamed tovframeButton
.
Improvements:
- The tour now has a separate DUB recipe.
- MapFrame:
addChild
will now fail contracts on null nodes. toFluid
has been added to use Raylib textures in fluid.Texture contexts (Thanks @LiamM32).- ImageView: Images can now be used directly with ImageView (Thanks @LiamM32).
- Raylib: Trilinear filtering is now used by default when rendering textures.
- MapFrame:
addChild
now has one more overload that supportsVector2
(Thanks @LiamM32) - The showcase now defaults to Raylib, which is also now included in Fluid.
- FreetypeTypeface:
advance
result is now cached. - Typeface.measure: New overload has been added to operate directly on
TextRuler
. - Tree now uses a separate set of key bindings on macOS.
- Better Unicode test coverage for
TextInput
. - PasswordInput: Shredding is now explicit.
- The showcase has been renamed to Tour and its directory has been renamed accordingly.
Bugfixes:
- SwitchSlot: Make sure the correct size is used if there are multiple references to a child. #138
- DragSlot: Ignore
Style.gap
for hidden handles. - Space: Include
Style.gap
in minSize - TextInput: Unicode related bugfixes
- Text: Bugfix multiline text not updating when changed.
- Possible use-after-free if TextureGC is used inside as a dynamic array element.