I don't really like the style of wrapping to different points depending
on where the opening parenthesis is, especially when it wraps for just
one item, and these changes may remove some semantic grouping or
ordering (i.e. by importance), but I don't think I put THAT much thought
into it, and I think I can accept some lack of control, to freely use
the Organize Imports command in VS Code, which does nicely automate
grouping imports of different types.
With `textual run --dev "src.textual_paint.gallery foobar"` it output:
Folder not found: foobar
Not a folder: foobar
No ANSI art (*.ans, *.txt) found in folder: foobar
NOTE: 3 errors shown above.
Now it correctly outputs only:
Folder not found: foobar
This fixes the gallery app's --help, because before it was importing the "paint" module, which imported "args", which parsed arguments for the paint app instead of the gallery app.
This is also a refactor I've been meaning to do — since the very beginning, really — and it would've been a lot less trouble if I could've done it from the beginning, but I couldn't get imports to work. Yeah, really. Sounds pretty stupid 'cause it is. Python's module system is terrible.
This fixes "NameError: name 'PaintApp' is not defined"
PaintApp is only defined during type checking (i.e. if TYPE_CHECKING).
It would be nice if the type checker warned about usage of such vars outside of type annotations.
I believe the scrollable container's left/right bindings are winning
in terms of display in the Footer, even though mine have priority
in terms of functionality.
In the normal scrollbar render implementation, which uses fractional block characters, thumb_size makes sense as a float, but here, it can lead to cases where the scrollbar thumb takes up the entire scrollbar even though scrolling is possible, if it's not snapped to an integer number of cells. (In the original implementation, perhaps it can still run into such cases, but it would need a more extreme fraction?)