* change commit default binding
* animated gif of multiline text edit
* update changelog
* fix style of default text
* textinput should not need to know about its users
* fix branch create popup
* will consume all cores now and got faster in all my benchmarks
* setting progress via asyncjob now makes sure to only set it if it has changed and return whether that is the case to simplify sending progress notifications only in case progress actually changed
* Simplify theme overrides
Theme overrides are now loaded the same way key overrides are loaded.
The config file, `theme.ron`, does not have to contain a complete theme
anymore. Instead, it is possible to specify only the values that are
supposed to override their corresponding default values.
* Document breaking change in changelog
* Test that override differs from default
* Convert existing theme to patch
* feat: support 'n'/'p' key to move to the next/prev hunk.
* feat: auto scroll next/prev hunk into visible area.
* add unittest for VerticalScroll::move_area_to_visible.
* Default to tick-based updates
This commit reintroduces code that was previously removed in favor of a
notify-based update trigger. It turned out that notify-based updates can
cause issues in larger repositories, so tick-based updates seemed like a
safer default.
https://github.com/extrawurst/gitui/issues/1444https://github.com/extrawurst/gitui/pull/1310
* Add FAQ entry for --watcher
* Remove --poll
sometimes messages appear empty because getting the revlog is so fast (empty repo) that no draw happened yet and so we do not know yet what size the view will have.
fixes#1473
* Add keybind to checkout commit in log view
* Extract commit checkout into method
* add quckbar hint for checkout commit
* add a smoke test
* update changelog
* show an error in popup
---------
Co-authored-by: Omnikar <omnikar5@gmail.com>
Co-authored-by: extrawurst <776816+extrawurst@users.noreply.github.com>
* allow to build syntect with regex-onig
Syntect supports two regex engines:
* regex-fancy: a pure-rust regex engine based on the fancy-regex
* regex-onig: a regex engine based on the oniguruma C library
From the syntect's Readme:
> The advantage of fancy-regex is that it does not require the onig
> crate which requires building and linking the Oniguruma C library.
> Many users experience difficulty building the onig crate, especially
> on Windows and Webassembly.
> As far as our tests can tell this new engine is just as correct, but
> it hasn't been tested as extensively in production. It also currently
> seems to be about half the speed of the default Oniguruma engine
Oniguruma engine is faster than the fancy-regex engine and the syntect
project chose the latter as the default only to avoid difficulties with
linking Oniguruma (C library) on some platforms. This is not an issue
for linux distributions - linking against system-provided shared
library is preferred to bundled libraries.
Moreover, gitui built with Oniguruma instead of fancy-regex is by 25%
smaller.
This commit adds two cargo features, regex-fancy and regex-onig, to
enable respective syntect features. The former is enabled by default.
* allow to build without vendored openssl
Vendoring (bundling) openssl library is very bad for security and
Linux distributions forbid it. The aim of this change is to simplify
packaging gitui in linux distros.
Co-authored-by: extrawurst <776816+extrawurst@users.noreply.github.com>