This is used in process_event() functions of UI Components. When a key
has been input we have to compare it with the configured shortcuts from
a hashmap.
Add shortcut! macro that checks shortcut hashmaps for the given name and
doesn't panic if it's missing.
- Unflatten shortcuts configuration table.
Shortcuts now have to be defined in levels:
[shortcuts.general]
...
[shortcuts.pager]
...
- Add shortcuts for thread view
- Sort alphabetically in help view
- move set_seen to Listing component (instead of having it in Listing's
child Component)
- add default values to shortcut definition macro `shortcut_key_values`
- do not redefine default values in each `shortcuts` method after
getting all valid shortcuts from `context.settings.shortcuts.*.key_values()`
put shortcuts in different maps according to their source component
instead of bagging them all in the same one, and then print each
shortcut section on its own in the shortcut window