-
-
Notifications
You must be signed in to change notification settings - Fork 651
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
status-bar: Reflect actual current keybindings #1242
status-bar: Reflect actual current keybindings #1242
Commits on Jul 25, 2022
-
status-bar: first_line: Use more generic var names
Rename all `CtrlKey...` to the equivalent `Key...` to make the name less specific. It implies that all key bindings use Ctrl as modifier key, which needn't necessarily be the case.
Configuration menu - View commit details
-
Copy full SHA for 828bc29 - Browse repository at this point
Copy the full SHA 828bc29View commit details -
status-bar: first_line: Refactor
ctrl_keys
Removes lots of code duplication by `Unselect`ing all keys by default and only `Select`ing what is actually required for a given Input mode.
Configuration menu - View commit details
-
Copy full SHA for a843195 - Browse repository at this point
Copy the full SHA a843195View commit details -
utils: conditionally compile unix-specific code
In `zellij_utils`, the following modules each contained code that was previously targeting only the unix platform: - consts: Works with unix-specific filesystem attributes to set e.g. special file permissions. Also relies on having a UID. - shared: Uses unix-specific filesystem attributes to set file permissions These will never work when targeting wasm. Hence the concerning code passages have been moved into private submodules that are only compiled and re-exported when the target isn't `#[cfg(unix)]`. The re-export makes sure that crates from the outside that use `zellij_utils` work as before, since from their point of view nothing has changed.
Configuration menu - View commit details
-
Copy full SHA for 82a729a - Browse repository at this point
Copy the full SHA 82a729aView commit details -
utils: Share more modules with wasm
that work on both wasm and unix natively. This requires factoring out bits of code in the `setup` and `input` modules into a private submodule that is re-exported when the compilation target is *not* "wasm". The following modules are now available to the wasm target: - cli - consts - data - envs - input (partial) - actions - command - configs - keybinds - layout - options - plugins - theme - pane_size - position - setup (partial) - shared The remaining modules unavailable to wasm have dependencies on crates that cannot compile against wasm, such as `async_std` or `termwiz`.
Configuration menu - View commit details
-
Copy full SHA for 09c6706 - Browse repository at this point
Copy the full SHA 09c6706View commit details -
utils/input/keybinds_test: Fix import
of the `CharOrArrow` struct which is now part of the `data` submodule.
Configuration menu - View commit details
-
Copy full SHA for 484d7a5 - Browse repository at this point
Copy the full SHA 484d7a5View commit details -
utils/layout: Use global serde crate
Previously the code was decorated with `#[serde(crate = "self::serde")]` statements which cannot be shared with wasm. Use the regular serde without specifying which serde is meant.
Configuration menu - View commit details
-
Copy full SHA for 548bb87 - Browse repository at this point
Copy the full SHA 548bb87View commit details -
utils/data: Implement
fmt::Display
forKey
so the Keybindings can be displayed via `format!` and friends in e.g. the status bar.
Configuration menu - View commit details
-
Copy full SHA for 1264cb3 - Browse repository at this point
Copy the full SHA 1264cb3View commit details -
tile/prelude: Re-export
actions
submodule of `zellij_utils` so the plugins can access the `ModeKeybinds` struct with all of its members.
Configuration menu - View commit details
-
Copy full SHA for 923b33b - Browse repository at this point
Copy the full SHA 923b33bView commit details -
utils/data: Fix
ModeInfo::keybinds
typeand transfer a vector of `(Key, Vec<Action>)` to the plugins so they can parse it themselves, instead of passing strings around. Due to the requirement of the `Eq` trait derive on `ModeInfo` this requires deriving `Eq` on all the types included by `Key` and `Action` as well. Note that `Action` includes the `layout::SplitSize` structure as a member. We cannot derive `Eq` here since `SplitSize::Percent(f64)` cannot satisfy `Eq` because `f64` doesn't implement this. So we add a new type to hack around this limitation by storing the percentage as `u64` internally, scaled by a factor of 10 000 and transforming it to f64 when needed. Refer to the documentation of `layout::Percent` for further information.
Configuration menu - View commit details
-
Copy full SHA for 6bda877 - Browse repository at this point
Copy the full SHA 6bda877View commit details -
so the keybindings can be sorted after their keys.
Configuration menu - View commit details
-
Copy full SHA for e6e6bf4 - Browse repository at this point
Copy the full SHA e6e6bf4View commit details -
WIP: utils/input: Make keybinds accessible
when generating `ModeInfo` structs.
Configuration menu - View commit details
-
Copy full SHA for ff74417 - Browse repository at this point
Copy the full SHA ff74417View commit details -
utils/data: Handle unprintable chars in
Key
when displaying via the `fmt::Display` trait. Handles `\t` and `\n` and represents them as UTF-8 arrow glyphs.
Configuration menu - View commit details
-
Copy full SHA for 7adffd9 - Browse repository at this point
Copy the full SHA 7adffd9View commit details -
HACK: utils/layout: Use u64 for SplitSize::Percent
The previous workaround using a custom `Percent` type fails at the absolute latest when confronted with user layouts, since these do not know about the scaling factor and will thus break. It still breaks currently because `Percent` now expects a u64 (i.e. `50`, not `50.0`) but this is more easily explained and understood.
Configuration menu - View commit details
-
Copy full SHA for 78184d7 - Browse repository at this point
Copy the full SHA 78184d7View commit details -
that retrieve the key bound to execute a sequence of `Action` given a specific Keybinding, and a shorthand that expands to `Action::SwitchToMode(InputMode::Normal)` used for pattern matching with the `matches!` macro.
Configuration menu - View commit details
-
Copy full SHA for 0ff8b4f - Browse repository at this point
Copy the full SHA 0ff8b4fView commit details -
status-bar/first_line: Get shared superkey if any
from the `ModeKeybindings` in the current `ModeInfo` struct. If the configured keybindings for switching the modes don't have a superkey in common, do not print a common prefix.
Configuration menu - View commit details
-
Copy full SHA for 40e79d5 - Browse repository at this point
Copy the full SHA 40e79d5View commit details -
status-bar/first_line: Add key to KeyShortcut
which is the key that must be pressed in the current mode to execute the given shortcut (i.e. switch to the given mode).
Configuration menu - View commit details
-
Copy full SHA for 5ba84fb - Browse repository at this point
Copy the full SHA 5ba84fbView commit details -
status-bar/first_line: Dynamically set mode binds
Read the keybindings for switching the modes to print in the first line from the actually configured keybindings for the current mode. Add some logic to the code that: - Prints only the "single letter" of the keybinding if all mode-switch shortcuts *share the same modifier key*, - Or prints the whole keybinding (with modified) into each segment if there is no common modifier key.
Configuration menu - View commit details
-
Copy full SHA for ca163cb - Browse repository at this point
Copy the full SHA ca163cbView commit details -
status-bar/second_line: Display configured binds
Instead of showing some hard-coded default values. For each mode, reads the keybindings from the configured keybindings based on some sequence of action. For example, the keybinding for `New` in the `Pane` menu is now determined by looking into the configured keybindings and finding what key is bound to the `Action::NewPane(None)` action. If no keybinding is found for a given sequence of actions, it will not show up in the segments either.
Configuration menu - View commit details
-
Copy full SHA for a770f80 - Browse repository at this point
Copy the full SHA a770f80View commit details -
WIP: utils/keybinds: Make key order deterministic
by using a BTreeMap which by default has all of its elements in sorted order internally. As of currently this doesn't seem to impress the order in which the keybindings are sent to the plugins, though.
Configuration menu - View commit details
-
Copy full SHA for 8449fdc - Browse repository at this point
Copy the full SHA 8449fdcView commit details -
utils/data: Reorder
Key
variantsto have the Arrow keys sorted as "left", "down", "up", "right" in accordance with the display in e.g. the status bar.
Configuration menu - View commit details
-
Copy full SHA for 3545fd6 - Browse repository at this point
Copy the full SHA 3545fd6View commit details -
status-bar/first_line: Fix inverted
matches!
when trying to obtain the keybindings to switch between the input modes. Its initial purpose was to filter out all ' ', '\n' and 'Esc' keybindings for switching modes (As these are the default and not of interest for the status bar display), but it was not negated and thus only filtered out the aforementioned keys.
Configuration menu - View commit details
-
Copy full SHA for c11f8cb - Browse repository at this point
Copy the full SHA c11f8cbView commit details -
status-bar: Don't get all modeswitch keybinds
but only those that are displayed in the status bar. This currently excludes the keybindings for Entering the Pane/TabRename mode, Tmux mode and Prompt mode. We must explicitly exclude these since they aren't bound to the same Modifiers as the regular keys. Thus, if we e.g. enter Pane or Tab mode, it will pick up the `SwitchToMode(InputMode::TabRename)` action as being bound to `c`, hence the `superkey` function cannot find a common modifier, etc. But we don't display the `TabRename` input mode in the first line anyway, so we must ignore it. Therefore, we additionally add the keybinding to call the `Action::Quit` action to terminate zellij to the vector we return. Also remove the `(Key, InputMode)` tuple and convert the return type to a plain `Vec<Key>`, since the never worked with the `InputMode` in the first place.
Configuration menu - View commit details
-
Copy full SHA for 51aaa47 - Browse repository at this point
Copy the full SHA 51aaa47View commit details -
status-bar/first_line: Fix output for tight screen
Implement the "Squeezed" display variant where we do not display which of the modes each keybinding switches to, but only the keybinding itself.
Configuration menu - View commit details
-
Copy full SHA for d56db92 - Browse repository at this point
Copy the full SHA d56db92View commit details -
Configuration menu - View commit details
-
Copy full SHA for ff8ef7b - Browse repository at this point
Copy the full SHA ff8ef7bView commit details -
status-bar/second-line: Refactor key hints
Instead of determining the appropriate key hints for every case separately (i.e. enough space to show all, show shortened, shot best-effort), create a central function that returns for the current `InputMode` a Vector with tuples of: - A String to show in full-length mode - A String to show in shortened/best-effort mode - The vector of keys that goes with this key hint This allows all functions that need the hints to iterate over the vector and pick whatever hint suits them along with the Keys to display.
Configuration menu - View commit details
-
Copy full SHA for 3b75633 - Browse repository at this point
Copy the full SHA 3b75633View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6a21a43 - Browse repository at this point
Copy the full SHA 6a21a43View commit details -
utils/data: Fix display for
Key::Alt
which previously printed only the internal char but not the modifier.
Configuration menu - View commit details
-
Copy full SHA for 0ba4a1b - Browse repository at this point
Copy the full SHA 0ba4a1bView commit details -
status-bar/first-line: Add hidden Tmux tile
that is only shown when in Tmux mode. Note that with the default config this "breaks" the shared superkey display, because it correctly identifies that one can switch to Scroll mode via `[`.
Configuration menu - View commit details
-
Copy full SHA for c21c4c6 - Browse repository at this point
Copy the full SHA c21c4c6View commit details -
status-bar: Print superkey as part of first line
Instead of first obtaining the superkey and then the rest of the first line to display. This way we don't need to split up individual data structures and carry a boolean flag around multiple functions. It also has the advantage that when the available space is really tight, the first line is entirely empty and doesn't display a stale superkey without any other keybinding hints.
Configuration menu - View commit details
-
Copy full SHA for bc9533a - Browse repository at this point
Copy the full SHA bc9533aView commit details -
status-bar: Rework keybinding theming
Previously there were individual functions to create the tiles in the first line depending on whether: - A tile was selected, unselected, unselected alternate (for theming) or disabled, and - Tiles had full length or were displayed shortened In the first case, the functions that previously handled the theming only differed in what theme they apply to the otherwise identical content. Since the theming information was drawn from a flat structure that simulated hierarchy by giving hierarchical names to its theme "members", this couldn't be handled in code. In the second case, some of the theming information needed for the full-length shortcuts was replicated for the shortened shortcuts. Instead, rewrite the general Theming structure into a hierarchical one: Adds a new structure `SegmentStyle` that contains the style for a single segment depending on whether it is selected, unselected (alternate) or disabled. Refactor the `first-line` module to use a single function to generate either full-length or shortened tiles, that does functionally the same but switches themes based on the selection status of the tile it themes.
Configuration menu - View commit details
-
Copy full SHA for 5568673 - Browse repository at this point
Copy the full SHA 5568673View commit details -
status-bar/second-line: Return new
LinePart
sfrom the `add_shortcut` function instead of modifying the input parameters.
Configuration menu - View commit details
-
Copy full SHA for 8f65cf1 - Browse repository at this point
Copy the full SHA 8f65cf1View commit details -
status-bar/second-line: Implement adaptive behavior
and make the keyhints adapt when the screen runs out of space. The hints first become shortened and when necessary partially disappear to display a "..." hint instead.
Configuration menu - View commit details
-
Copy full SHA for 1354bf2 - Browse repository at this point
Copy the full SHA 1354bf2View commit details -
status-bar/second-line: Show float pane binding
based on the keycombination that's really bound to switching into the "Pane" input mode.
Configuration menu - View commit details
-
Copy full SHA for 6fd6bfb - Browse repository at this point
Copy the full SHA 6fd6bfbView commit details -
status-bar/get_keys_and_hints: Add more modes
for the keybindings in Tmux and the Pane/TabRename input modes.
Configuration menu - View commit details
-
Copy full SHA for 47ee111 - Browse repository at this point
Copy the full SHA 47ee111View commit details -
status-bar/second-line: Unify mode handling
and don't do extra shortcut handling for Tmux and the Pane/TabRename modes any longer. Instead, assemble this like for all other modes from the keybinding and hints vector.
Configuration menu - View commit details
-
Copy full SHA for 4879ea1 - Browse repository at this point
Copy the full SHA 4879ea1View commit details -
status-bar/first-line: Refactor common modifier
to a separate function so it can be used by other modules, too.
Configuration menu - View commit details
-
Copy full SHA for e8d3c0c - Browse repository at this point
Copy the full SHA e8d3c0cView commit details -
status-bar/second-line: Display modifier in hints
when available. For example, for bindings to move between panes when in PaneRename mode, now displays "Alt + <hjkl>" instead of "<Alt+hAlt+j...>".
Configuration menu - View commit details
-
Copy full SHA for b0a6ecd - Browse repository at this point
Copy the full SHA b0a6ecdView commit details -
utils/ipc: Remove
Copy
fromClientAttributes
as preparation to add `Keybinds` as a member to the `ClientAttributes` struct. `Keybinds` contains a `HashMap`, for which the `std` doesn't derive `Copy` but only `Clone`.
Configuration menu - View commit details
-
Copy full SHA for 6dd8d89 - Browse repository at this point
Copy the full SHA 6dd8d89View commit details -
utils/input/keybinds: Fix import path
Import `Key` and `InputMode` directly from `data`.
Configuration menu - View commit details
-
Copy full SHA for b4ae898 - Browse repository at this point
Copy the full SHA b4ae898View commit details -
utils/ipc: Add
Keybinds
toClientAttributes
so we can keep track, pre-client, of the configured key bindings and pass them around further in the code.
Configuration menu - View commit details
-
Copy full SHA for 50236ac - Browse repository at this point
Copy the full SHA 50236acView commit details -
server/lib: Store
ClientAttributes
overStyle
in `SessionMetadata` to be able to pass Keybindings to other places in the code, too. Since `Style` is also a member of `ClientAttributes`, this works with minimal modifications.
Configuration menu - View commit details
-
Copy full SHA for 6b1507f - Browse repository at this point
Copy the full SHA 6b1507fView commit details -
utils/input: Change
get_mode_info
parametersto take a `ClientAttributes` struct instead of merely the `Style` information. This way we can get the `Style` from the `ClientAttributes`, and also have access to the `keybinds` member that stores the keybinding configuration.
Configuration menu - View commit details
-
Copy full SHA for e0e3a52 - Browse repository at this point
Copy the full SHA e0e3a52View commit details -
utils/ipc: Use
rmp
for serde of IPC messagesinstead of `bincode`, which seemingly has issues (de)serializing `HashMap`s and `BTreeMap`s since `deserialize_any` isn't implemented for these types.
Configuration menu - View commit details
-
Copy full SHA for bf6b5f6 - Browse repository at this point
Copy the full SHA bf6b5f6View commit details -
fix(nix): remove
assets
fromgitignore
Remove `assets` from the gitignore of the plugins themselves, since every single plugin now depends on the asset being accessible in its source directory.
Configuration menu - View commit details
-
Copy full SHA for 04bae29 - Browse repository at this point
Copy the full SHA 04bae29View commit details -
tests/e2e: Fix status bar in snapshots
to reflect the current state of the dynamic keybindings.
Configuration menu - View commit details
-
Copy full SHA for 0b3a034 - Browse repository at this point
Copy the full SHA 0b3a034View commit details -
status_bar/first_line: Don't show unbound modes
If switching to a specific mode isn't bound to a key, don't show a tile/ribbon for it either. E.g. in `LOCKED` mode, this will only show the tile for the `LOCK` mode and ignore all others.
Configuration menu - View commit details
-
Copy full SHA for 6a0b982 - Browse repository at this point
Copy the full SHA 6a0b982View commit details -
utils/data: Make 'Key::Char(' ') visible as "␣"
so the user doesn't only see a blank char but has an idea that the space key is meant.
Configuration menu - View commit details
-
Copy full SHA for 62b12ac - Browse repository at this point
Copy the full SHA 62b12acView commit details -
status_bar/second_line: Remove extra hints
generated by the `hint_producing_function` that would tell the user in every input mode how to get back to normal mode. Instead, add this as keybinding to the general keybindings vector. This removes some lines of duplicated code but most of all now applies the correct theming to this keybinding. Additionally, previously the `RenameTab` and `RenamePane` input modes would show the keybinding to get back to normal mode twice and both of them were hardcoded. This binding is now dynamically displayed based on what the user configured as keybinding.
Configuration menu - View commit details
-
Copy full SHA for 9bb990d - Browse repository at this point
Copy the full SHA 9bb990dView commit details -
utils/data: format unprintable chars as words
instead of unicode symbols. E.g. write "SPACE" instead of "␣".
Configuration menu - View commit details
-
Copy full SHA for f1bf0d2 - Browse repository at this point
Copy the full SHA f1bf0d2View commit details -
utils/data: Fix display for
Ctrl
/Alt
keyspreviously their "inner" chars would be displayed with a regular `fmt::Display` for the `&str` type they are. This doesn't match what we want to output. So instead we wrap the inner chars into `Key::Char` before printing them.
Configuration menu - View commit details
-
Copy full SHA for 05962d0 - Browse repository at this point
Copy the full SHA 05962d0View commit details -
utils/data: Change order of
Key
sso that e.g. for the default bindings in `Scroll` mode we prefer to show `PgDn|PgUp` rather than the arrow keys these actions are bound to as well.
Configuration menu - View commit details
-
Copy full SHA for 36f5fea - Browse repository at this point
Copy the full SHA 36f5feaView commit details -
status_bar/first_line: Don't ignore default char
bindings by default. These include the '\n', ' ' and 'Esc' bindings that by default lead back to `Normal` input mode from all the modes. Previously we would unconditionally ignore them and consequently not print the tile when in fact the user may have bound this particular action to either of the keys. Instead now we first ignore the keys mentioned and if we turn up with an undefined binding, we consider these default keys as well so we get *something* to display in any case.
Configuration menu - View commit details
-
Copy full SHA for 636fb3c - Browse repository at this point
Copy the full SHA 636fb3cView commit details -
status_bar/first_line: Add space when no modifier
is shared between the keybindings. This way there isn't a stray arrow at the very border of the screen, but it is spaced just like the tab-bar and the second line is.
Configuration menu - View commit details
-
Copy full SHA for 13af73d - Browse repository at this point
Copy the full SHA 13af73dView commit details -
status_bar/second_line: Print separators
between consecutive keys bound to specific actions. This allows the user to visually differ between different keys.
Configuration menu - View commit details
-
Copy full SHA for 76dfc5c - Browse repository at this point
Copy the full SHA 76dfc5cView commit details -
Configuration menu - View commit details
-
Copy full SHA for a92ae99 - Browse repository at this point
Copy the full SHA a92ae99View commit details -
status_bar/first_line: Don't suppress Disabled tiles
Disabled is a special state that the keybindings only assume in locked mode. It turns the respective tiles grey to signal to the user that these are currently inactive. With respect to users new to zellij, it may appear confusing that when entering locked mode all the other tiles disappear (which they do because they have no valid keybinding assigned). Since we have no keybinding for them, we still display them but without any associated key (i.e. as `<>` for the binding).
Configuration menu - View commit details
-
Copy full SHA for 4815ba3 - Browse repository at this point
Copy the full SHA 4815ba3View commit details -
status_bar/first_line: Don't print leading triangle
on first tile, when there is no shared superkey.
Configuration menu - View commit details
-
Copy full SHA for 1969dd0 - Browse repository at this point
Copy the full SHA 1969dd0View commit details -
status_bar/second_line: Add exceptions
for inter-key separators. Keeps groups of `hjkl` and arrow keys intact (doesn't add separators between the keys) but separates all others.
Configuration menu - View commit details
-
Copy full SHA for 5d1a7ee - Browse repository at this point
Copy the full SHA 5d1a7eeView commit details -
status_bar/main: Refactor
action_key
to a regular function instead of a macro. It turns out that while being able to match patterns is a nice feature, we completely rely on the keys that drop out of the pattern found this way to be sorted in a sensible way. Since we sort the key vectors in the necessary places after the keys, and not the actions, this of course doesn't apply when the user changes "hjkl" to "zjkl", which would then become "jklz". Now this is of course wrong, because "z" still means "Move focus left", and not "Move focus right". With the function we now assume a slice of Actions that we match the action vectors from the keybindings against to obtain the necessary keys. In order to avoid ugly `into_iter().chain(...)` constructs we had before we also add a new function `action_key_group` that takes a sliced array of slices to get a whole group of keys to display.
Configuration menu - View commit details
-
Copy full SHA for 07d0d60 - Browse repository at this point
Copy the full SHA 07d0d60View commit details -
status_bar/first_line: Fix "triangle" for short tiles
since we do not want to display a colored triangle at the start of the line when in sortened mode (just as we do for the long tiles now). Also fix a bug that would make the triangle reappear when the first keybinding to be displayed didn't have a key assigned and thus wouldn't be displayed at all.
Configuration menu - View commit details
-
Copy full SHA for 0acbe10 - Browse repository at this point
Copy the full SHA 0acbe10View commit details -
status_bar/second_line: Fix typo
that would cause single `Ctrl+?` bindings for actions in the second line to be displayed as `Ctrl + <Ctrl+?>`.
Configuration menu - View commit details
-
Copy full SHA for 455b75b - Browse repository at this point
Copy the full SHA 455b75bView commit details -
status_bar/second_line: Fix char count
when displaying groups of keys in a binding with or without a separator.
Configuration menu - View commit details
-
Copy full SHA for 4715cd5 - Browse repository at this point
Copy the full SHA 4715cd5View commit details -
status_bar: Use new
action_key
fninstead of the previous macro to obtain the keys to display in the status bar in a fixed given order. Also fix the display "bug" where tab switching would be shows as "ArrowLeft/ArrowDown" instead of "ArrowLeft/ArrowRight".
Configuration menu - View commit details
-
Copy full SHA for ead39c3 - Browse repository at this point
Copy the full SHA ead39c3View commit details -
status_bar/second_line: Fix floating pane hint
that tells the user what keybinding to press to suppress the currently active floating panes. This was previously hardcoded.
Configuration menu - View commit details
-
Copy full SHA for 9190c27 - Browse repository at this point
Copy the full SHA 9190c27View commit details -
utils: Send full keybinds in
ModeInfo
instead of the currently active `ModeKeybinds` for the active input mode. Some of the UI issues cannot be solved without having access to *all* keybindings.
Configuration menu - View commit details
-
Copy full SHA for 20a60db - Browse repository at this point
Copy the full SHA 20a60dbView commit details -
Configuration menu - View commit details
-
Copy full SHA for b438022 - Browse repository at this point
Copy the full SHA b438022View commit details -
Configuration menu - View commit details
-
Copy full SHA for 68a1326 - Browse repository at this point
Copy the full SHA 68a1326View commit details -
status_bar: Factor out printing keybindings
into a separate function that takes a vector of keys and a palette and returns the painted key groups, with correct inter-character separation where necessary and factoring out common modifier keys.
Configuration menu - View commit details
-
Copy full SHA for 332596f - Browse repository at this point
Copy the full SHA 332596fView commit details -
status_bar/tip: Use real keybindings
instead of printing hard-coded messages to the user.
Configuration menu - View commit details
-
Copy full SHA for 6a3f2ad - Browse repository at this point
Copy the full SHA 6a3f2adView commit details -
status_bar: abort early when keyvector is empty
in `style_key_with_modifier`.
Configuration menu - View commit details
-
Copy full SHA for 7e0a37f - Browse repository at this point
Copy the full SHA 7e0a37fView commit details -
status_bar/tip: Fix all keybindings
and make them dynamic given the keybindings really active in the current session. Also display **UNBOUND** is some keybinding is missing from the users config.
Configuration menu - View commit details
-
Copy full SHA for 07c586b - Browse repository at this point
Copy the full SHA 07c586bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 569b334 - Browse repository at this point
Copy the full SHA 569b334View commit details -
and add a new exception group to `action_key_group` that ensures that `hl` and `jk` won't be separated with `|`.
Configuration menu - View commit details
-
Copy full SHA for 34658d9 - Browse repository at this point
Copy the full SHA 34658d9View commit details -
status_bar/tip: Detect when key aren't bound
correctly and show "UNBOUND" as keyhint instead, then. Previously we would only check the length of the whole keybinding segment, but that isn't a good indicator since most of the bindings require changing modes first, which already adds a variable number of letters to the segment. However, there is not point in showing how to get to a certain mode, if the binding needed in that mode doesn't exist.
Configuration menu - View commit details
-
Copy full SHA for 8606c4e - Browse repository at this point
Copy the full SHA 8606c4eView commit details -
status_bar/first_line: Show bindings when locked
if the user has any configured.
Configuration menu - View commit details
-
Copy full SHA for 5bd2ad9 - Browse repository at this point
Copy the full SHA 5bd2ad9View commit details -
status_bar: Don't consider 'hl', 'jk' groups
that don't need a separator in between the letters.
Configuration menu - View commit details
-
Copy full SHA for a34f7ef - Browse repository at this point
Copy the full SHA a34f7efView commit details -
status_bar/second_line: Add "search" keybindings
for the new Search functionality.
Configuration menu - View commit details
-
Copy full SHA for 52e5cd4 - Browse repository at this point
Copy the full SHA 52e5cd4View commit details -
with what the status bar now really displays.
Configuration menu - View commit details
-
Copy full SHA for da05202 - Browse repository at this point
Copy the full SHA da05202View commit details -
Configuration menu - View commit details
-
Copy full SHA for 52ef7a0 - Browse repository at this point
Copy the full SHA 52ef7a0View commit details -
status_bar/first_line: Rename 'long_tile'
to the more descriptive name 'mode_shortcut', which better describes what this function does.
Configuration menu - View commit details
-
Copy full SHA for 1b373ae - Browse repository at this point
Copy the full SHA 1b373aeView commit details -
status_bar/first_line: Fix spacing in simple UI
where the modifier would be shows as `Ctrl +`, without a trailing space. This isn't an issue in regular mode, where we have the spacing from the arrow gaps (`>>`) that "simulates" this effect.
Configuration menu - View commit details
-
Copy full SHA for 2e62513 - Browse repository at this point
Copy the full SHA 2e62513View commit details -
status_bar: Refactor and rename
ctrl_keys
so it doesn't rely on some "external" index for operation any more.
Configuration menu - View commit details
-
Copy full SHA for 0513979 - Browse repository at this point
Copy the full SHA 0513979View commit details -
status_bar: Add unit tests to shared functions
and fix a bug in the process where certain `Ctrl` keybindings would be displayed wrong.
Configuration menu - View commit details
-
Copy full SHA for 8891778 - Browse repository at this point
Copy the full SHA 8891778View commit details -
status_bar/first_line: Rename functions
responsible for printing the long and short shortcut keyhint tiles. Also add some documentation that explains their purpose and the arguments they accept.
Configuration menu - View commit details
-
Copy full SHA for 3a06d5f - Browse repository at this point
Copy the full SHA 3a06d5fView commit details -
Configuration menu - View commit details
-
Copy full SHA for a9327f6 - Browse repository at this point
Copy the full SHA a9327f6View commit details -
utils/layout: Remove old comments
introduced when rewriting `SplitSize::Percent` to not hold an `f64` type.
Configuration menu - View commit details
-
Copy full SHA for 1d8ef80 - Browse repository at this point
Copy the full SHA 1d8ef80View commit details -
status_bar: Add "regex" as test dependency
We use regular expressions to strip all ANSI escape sequences in the strings that are produced by the plugin functions during testing. We do not test for the style information, but merely for the raw text.
Configuration menu - View commit details
-
Copy full SHA for 96b28d7 - Browse repository at this point
Copy the full SHA 96b28d7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 80a84a3 - Browse repository at this point
Copy the full SHA 80a84a3View commit details
Commits on Jul 26, 2022
-
Makefile: Always run tests on host triple
This allows the unit tests for all plugins to be run on the host as well (because their default compilation target is wasm32-wasi).
Configuration menu - View commit details
-
Copy full SHA for dc7ed86 - Browse repository at this point
Copy the full SHA dc7ed86View commit details
Commits on Jul 27, 2022
-
tests/e2e: Add test for custom bindings
in the status bar. Makes sure that the modified bindings from a custom configuration file are read and applied to the UI.
Configuration menu - View commit details
-
Copy full SHA for e2544bd - Browse repository at this point
Copy the full SHA e2544bdView commit details