With this, the codebase is mostly typed (as much as sumneko's type checking allows), and finally go-to-definition-able.
This refactor changed or touched more than 90% of the codebase, so here's just the most notable changes I can recall:
Menu implementation is now way more robust, and supports:
- live menu updates
- opening submenus allows navigating to parent menus
- items icons and bold & italic styling
- keeping menu open after selecting the item
- peeking submenus
- and a lot of other small tweaks
The menu input data structure changed. It no longer accepts `active_index` and `selected_index`, instead, each item can now have `active` or `selected` property.
And I'm sure there's a lot I'm forgetting to mention, but it's midnight here T.T
closes#144, ref #171, closes#176
Also includes a lot of refactoring around codebase to make it work as needed.
Notable addition: new `items` command that displays playlist if any, or open-file otherwise.
ref #167, closes#71
Chapters that end a chapter range and are matched by something other
then `.*` are now not shown when hovering over that chapter,
unless that chapter is also used to start another range.