Skip to content

add option to enable Scroll Forward like on cmd #8623

Open

Description

Description of the new feature/enhancement

it would be nice to have an option that would allow scrolling under the end of the text so everything is not stacked at the bottom and I don't have to do clear every time

there is no need to be able to scroll indefinitely, just a bit so we can see a bit better

expected:

image

actual:

image

Proposed technical implementation details

an option in the settings.json like

"ScrollForward": true,

Activity

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

    @zadjii-msft
    Member

    You know what, in the past I absolutely hated this idea. It is one of those things that made it harder for the console to achieve parity with linux terminals.

    Now I'm thinking that it might be okay in a limited fashion. There'd still only be one mutable viewport, but in scrollForward mode, we'd let you scroll the viewport down (height-1) lines from the bottom line. I think everything in the Terminal's VT implementation already uses the mutable viewport's corrdinates, rather than the visible viewport, so this might be okay.

    The tricky case would be scrolling forward at the bottom of the buffer - there'd be no extra lines there, so we'd have to add them as the user tried to scroll forward. That'd be weird.

  5. added
    Area-OutputRelated to output processing (inserting text into buffer, retrieving buffer text, etc.)
    Area-TerminalControlIssues pertaining to the terminal control (input, selection, keybindings, mouse interaction, etc.)
    on Dec 21, 2020
  6. ghost removed
    Needs-Tag-FixDoesn't match tag requirements
    on Dec 21, 2020
  7. removed
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    on Mar 26, 2021
  8. jiasli commented on Oct 13, 2021

    @jiasli

    Copied from #2643 (comment)

    Something like scrollBeyondLastLine from VS Code will be certainly wonderful:

    image

    https://code.visualstudio.com/docs/getstarted/settings

      // Controls whether the editor will scroll beyond the last line.
      "editor.scrollBeyondLastLine": true,
  9. noheromen commented on Jan 24, 2022

    @noheromen
  10. zadjii-msft commented on Jan 24, 2022

    @zadjii-msft
  11. noheromen commented on Jan 23, 2024

    @noheromen
  12. zadjii-msft commented on Jan 23, 2024

    @zadjii-msft
    Member

    Nope. If you/someone would like to help contribute a fix here, I'd be happy to start pointing you in the right direction. But I (honestly) don't think we'll be able to get to this for a very long time.

    Note

    Walkthrough

    (in progress)

    • _scrollOffset in Terminal.cpp/hpp is what controls the distance up from the mutable viewport the user has scrolled. So scroll one line up, and the value is 1. This should be changed to also allow negative values.
    • We shouldn't allow scroll-forward in the alt buffer (for things like vim)
    • Tricky edge case: how do we deal with scroll-forward when the buffer is full? There's literally not lines in the buffer to render at that point. We'd probably have to somehow fake it in the RenderData, or just prevent scroll-forward in that case entirely
    • Once that all works, create a profile setting in MTSMSettings and plumb that through to the TermControl
  13. moved this from Should be written to Walkthrough in issue in Terminal Walkthroughson Jan 23, 2024
  14. lukexyz commented on Jan 24, 2024

    @lukexyz

    Any progression on this task? it would be really helpful to have this option. Thanks

    I think this is a perfectly reasonable nudge. Having said that thank you for your candid response Mike Griese (@zadjii-msft)

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-OutputRelated to output processing (inserting text into buffer, retrieving buffer text, etc.)Area-TerminalControlIssues pertaining to the terminal control (input, selection, keybindings, mouse interaction, etc.)Help WantedWe encourage anyone to jump in on these.Issue-FeatureComplex enough to require an in depth planning process and actual budgeted, scheduled work.Product-TerminalThe new Windows Terminal.

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions