Skip to content

FR: IDE-style marks on scrollbar #1527

Closed

Description

Summary of the new feature/enhancement

Introduce marks and indicators on scrollbar:

1. Command seperators / prompt positions

  • Program runs and you want to see how long the current output is. You can look at scrollbar and see where is the last command marker.
  • You run gcc --help=common that prints ~900 lines of output, and you know the interesting switch is somewhere in the middle. By viewing the command's input line position you can easily navigate to that location.
  • You are running well-known batch script and want to know current state. You can look at scrollbar to count number of commands that has already run or even notice that second command has abnormally big output.
  • Just helps with navigation over previous command.

2. Selection span

  • Not as usefull but nice looking.

3. Colors of text / lines

  • You run some build script that prints errors in red and warnings in yellow. You can leave it running and them just glance at scrollbar to see if there are any issues (and locate them).
  • You run some port scanning script (like this) that prints successful connections in green and unsuccessful in red. Much like above.
  • You run git status that prints everything in green, but then look at scrollbar and see that one, sneeky, unstaged, red line.

Example looks:

Visual Studio IDEA InteliJ
image image

Proposed technical implementation details (optional)

  • This should be controlled by per profile settings
  • When there is one line, say red, surrounded by great number of green lines, that red dot or strip should have some minimum size to ensure it's visible.
  • When only part of the line is colored it should be show the same way as if whole line was colored
  • What if there are two colors on same line?

Activity

  1. added
    Issue-FeatureComplex enough to require an in depth planning process and actual budgeted, scheduled work.
    on Jun 24, 2019
  2. ghost added
    Needs-Tag-FixDoesn't match tag requirements
    on Jun 24, 2019
  3. ghost added
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    on Jun 24, 2019
  4. DHowett-MSFT commented on Jun 24, 2019

    @DHowett-MSFT
    Contributor

    Clever feature request, and one we haven't seen before. Thanks!

  5. ghost removed
    Needs-Tag-FixDoesn't match tag requirements
    on Jun 24, 2019
  6. mcpiroman commented on Jun 24, 2019

    @mcpiroman
    ContributorAuthor

    Technical consideration: Should the scroll bar be implemented as:

    1. ScrollBar as it is now, but with some custom overlay drawings (idk if that's possible)
    2. New control based on uwp primitives (just like the ScrollBar is implemented)
    3. New control based on custom rendering, potentially SwapChainPanel
  7. DHowett-MSFT commented on Jun 27, 2019

    @DHowett-MSFT
    Contributor

    We've had a "minimap" on our backlog for a while, so this would be a logical extension/step to that. I'm marking this one as backlog. 😄

  8. added
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    and removed
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    on Jun 27, 2019
  9. zadjii-msft commented on Jul 2, 2019

    @zadjii-msft
    Member

    I'm no XAML expert, but I'd think it'd be possible to put some sort of transparent control over the bounds of the scrollbar, and draw rectangles into that area. We'd have to be careful not to accept any mouse input in that region, but that seems possible to me.

    Now here's a question - if we're not doing this "minimap" style, and instead we're just putting little ticks there, how do we determine a tick should be placed? The terminal doesn't know when one command starts or ends, so the shell would have to communicate that to us somehow. Alternatively, we could try a keybinding that the user presses to manually add a tick - though that might not be the best either. Additionally, how would a tick get removed? Could the user click on them to change colors/delete? If so, I'd probably prefer the VS style ticks.

    (I'm adding the extensibility tag, since this seems like a good extension case)

  10. 15 remaining items

  11. zadjii-msft commented on Mar 23, 2022

    @zadjii-msft
    Member

    Are we meant to have this in older versions of conpty?

    Ah no, that work is still in PR right now (#12561). It's not an amazing solution. I'd have to go through and manually flush the frame on sequences we think that conhost isn't going to handle. I think there's a bit more discussion in #8698.

  12. Tyriar commented on Mar 23, 2022

    @Tyriar

    Mike Griese (@zadjii-msft) cool, well alt buffer support will be great when we eventually get it as well.

  13. ghost added
    In-PRThis issue has a related PR
    on Apr 20, 2022
  14. ghost added
    Needs-Tag-FixDoesn't match tag requirements
    on Jun 9, 2022
  15. added a commit that references this issue on Jun 9, 2022
    799b5d4
  16. ghost removed
    In-PRThis issue has a related PR
    on Jun 9, 2022
  17. ghost added
    Resolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.
    on Jun 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-ExtensibilityA feature that would ideally be fulfilled by us having an extension model.Area-UserInterfaceIssues pertaining to the user interface of the Console or TerminalIssue-FeatureComplex enough to require an in depth planning process and actual budgeted, scheduled work.Needs-Tag-FixDoesn't match tag requirementsProduct-TerminalThe new Windows Terminal.Resolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions