Skip to content
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

Posh Little Boxes #334

Open
5 tasks
StartAutomating opened this issue Feb 22, 2024 · 0 comments
Open
5 tasks

Posh Little Boxes #334

StartAutomating opened this issue Feb 22, 2024 · 0 comments

Comments

@StartAutomating
Copy link
Owner

StartAutomating commented Feb 22, 2024

Posh should support terminal boxes/borders around content.

These can be simply expressed in a string, and the spaces in that string can be used to content placement.

$Posh.Host.UI.Boxes # should return the known boxes

Boxes should be defined in NoteProperties of Posh.Host.UI.Boxes.

Boxes should normally be defined by a simple string.

For example, a "box" could be made out of "*"

$Posh.Host.UI.Boxes.Add("Star", '*')

A box could also be provided by a grid of characters, for example:

$Posh.Host.UI.Boxes.Add("PipeDash", @'
|-|
| |
|-|
'@)

The blank spacing in this box could be filled with content, and the characters bracketing that blank space can be extended.

This logic gets even more interesting if the box definition is a 5x5 matrix:

$Posh.Host.UI.Boxes.Add("Double", @'
╔═╦═╗
║ ║ ║
╠═╬═║
║ ║ ║
╚═╩═╝
'@)

Essentially, can define what all types of intersection should look like within a box, we can extend that box infinitely.

There should be several of these built-in boxes.

After several have been defined, we should start work on the Box pseudotype:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant