IsCombining() is a hotpath when rendering the screen.
Most of the time is spent doing bisearch on the word break interval list
to check it characters has the extend property.
Create a seperate table for intervals with the extend property,
so they can just be searched in isCombining().
Also some of the intervals in the word break interval list
were consecutive and could be combined to reduce the
size of the list.
This gives a ~25% performance improvement when running the benchmark
This upgrades the version of google benchmark used. The main reason for this upgrade is that the old version doesn't display the OVERALL_GEOMEAN when comparing two benchmarks.
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
Into ftxui/component/, add:
```
Container::Stacked(...)
Window(...);
```
Together, they can be used to display draggable/resizable windows.
Bug:https://github.com/ArthurSonzogni/FTXUI/issues/682
* Fix typo.
Improve the performance of the functions for searching for codepoints
in a table by passing the table array in as a reference instead of copying
it.
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
1. Stop taking Ref<XxxOption> in Component constructors. Instead, use
the XxxOption directly. Passing by copy avoid problems developers had
where one was shared in between multiple component, causing issues.
2. Add variants of most component constructors taking a struct only.
This replaces:
https://github.com/ArthurSonzogni/FTXUI/pull/670
This fixes:
https://github.com/ArthurSonzogni/FTXUI/issues/426
- Add `FTXUI_QUIET` to stop displaying FTXUI configuration messages.
- Turn `FTXUI_BUILD_DOC` and `FTXUI_BUILD_EXAMPLE` OFF by default
- Display the list of options.
Modify the `ftxui-config.cmake.in` file so that it includes
`ftxui-targets.cmake`. This causes cmake to check the version is
compatible with what the user requested.
This patch also includes additional minor changes.
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
Using `auto` seems to create a different output on different platforms.
Notably it was observed that aarch64 compiles return a different
value.
Fix the type of the characters iterated through the string.
Fixes#639
Signed-off-by: Henner Zeller <h.zeller@acm.org>
This file describes the include and lib location and makes
it possible to use the library in build systems other than
CMake, e.g. in basic Makefiles.
Signed-off-by: Henner Zeller <h.zeller@acm.org>
Depending on the Cursor Key Mode (DECCKM), the terminal sends different
escape sequences:
Key Normal Application
----- -------- -----------
Up ESC [ A ESC O A
Down ESC [ B ESC O B
Right ESC [ C ESC O C
Left ESC [ D ESC O D
Home ESC [ H ESC O H
End ESC [ F ESC O F
I decided not to update the current mode to fit what FTXUI parse, but
instead support parsing both. We convert the sequences from the
"application mode" into the "normal mode".
Bug:https://github.com/ArthurSonzogni/FTXUI/issues/626
Fixed:https://github.com/ArthurSonzogni/FTXUI/issues/626