laravel / prompts

Beautiful and user-friendly forms for your command-line PHP applications.
https://laravel.com/docs/prompts
MIT License
532 stars 94 forks source link

Extract string handling methods from DrawsBoxes trait #142

Closed ProjektGopher closed 6 months ago

ProjektGopher commented 6 months ago

This PR simply extracts three methods for handling multi-byte strings containing ansi escape sequences from DrawsBoxes into a separate HandlesStrings trait. The methods have remained wholly unchanged, so backwards compatibility is fully maintained.

I've written a new trait for a separate feature that needs this same functionality, but it doesn't draw boxes, so it doesn't make sense to use the DrawsBoxes trait. If I redefine these methods in my new trait, I get a method name collision when using both these traits in the same prompt. Having both traits consume this trait avoids that issue. I feel like this separates these concerns better now as well, since these methods aren't strictly limited to boxes.