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

Collapsible Regions #13298

Open
zadjii-msft opened this issue Jun 14, 2022 · 0 comments
Open

Collapsible Regions #13298

zadjii-msft opened this issue Jun 14, 2022 · 0 comments
Labels
Area-TerminalControl Issues pertaining to the terminal control (input, selection, keybindings, mouse interaction, etc.) Area-UserInterface Issues pertaining to the user interface of the Console or Terminal Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Product-Terminal The new Windows Terminal.
Milestone

Comments

@zadjii-msft
Copy link
Member

Writing notes on GH for posterity

Reference

Nested trees is super hard / probably a bad idea.

The cool idea is syncing this up with marks #11000, and how those two work together. We could collapse individual commands.

Implementation

Rendering a collapsed region might need a dev spec

  • I'm not sure the right way for us to just... remove the line from the buffer. It has to be there, but we need to skip it essentially. How do we do that performantly? Track in the first line of the region "I'm a collapsed region of N lines", and have the renderer then skip ahead N to read the next line? that might work...
  • But what about when the very first row of the mutable viewport is part of a region that's collapsed? we'd need to work back up to the row that the region started on. Unless we track the row that this collapsed row belongs to...
  • Of course, how does this work with reflow?
  • Circling the buffer?
  • Collapsed text in the mutable viewport is still writable. That's maybe weird - ^[H could take the cursor inside a collapsed region

Furthermore, how do we communicate these regions up to the control layer, for it to overlay UI?

UI Design

We might definitely need to have a gutter on the left to provide a UI for this. I've already been thinking about using the gutter for marks. Should the padding be used for the gutter? Or should the gutter be in addition to padding? Cause 1dip of padding on the left is not gonna be enough for these UI elements

We should probably do the UI elements in XAML, in TermControl.

@zadjii-msft zadjii-msft added Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Area-UserInterface Issues pertaining to the user interface of the Console or Terminal Area-TerminalControl Issues pertaining to the terminal control (input, selection, keybindings, mouse interaction, etc.) Product-Terminal The new Windows Terminal. labels Jun 14, 2022
@zadjii-msft zadjii-msft added this to the Backlog milestone Jun 14, 2022
@ghost ghost added the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Jun 14, 2022
@zadjii-msft zadjii-msft removed the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Jun 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-TerminalControl Issues pertaining to the terminal control (input, selection, keybindings, mouse interaction, etc.) Area-UserInterface Issues pertaining to the user interface of the Console or Terminal Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Product-Terminal The new Windows Terminal.
Projects
None yet
Development

No branches or pull requests

1 participant