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

Implementation of scrollback #657

Closed
wants to merge 99 commits into from
Closed

Implementation of scrollback #657

wants to merge 99 commits into from

Commits on Sep 23, 2017

  1. Added num and owned_slice, updated index::Line and added `index…

    …::AbsoluteLine`
    
    An `AbsoluteLine` represents an index (or length) into the complete scrollback buffer, rather than just the so-called 'active region'. This will be used in a select few methods within `Grid<T>`, while the rest of them are oblivious to whether scrollback is enabled or not, and continue to use `Line`.
    
    Given this distinction, I wonder if one should go further and distinguish between a `Line` as an index, and `NumLines` as a length. But perhaps that's too much verbosity.
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    4461cd5 View commit details
    Browse the repository at this point in the history
  2. Wrapped the unlikely intrinsic with a safe function

    That said, idk why exactly it was unsafe to start with so perhaps this is incorrect.
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    02269f7 View commit details
    Browse the repository at this point in the history
  3. Switched to git repository for the owned_slice crate.

    It hasn't been published to crates.io yet.
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    43a1414 View commit details
    Browse the repository at this point in the history
  4. Implement core scrollback functions

    This is accomplished by replacing the `Vec` buffer with a `VecDeque`.
    
    The *active region* represents the region in the buffer that is modifiable. It is essentially the latest `self.num_lines()` lines of the buffer.
    
    Upon start up, the *visible region* is equal to the active region, and when new lines are added the visible/active region both move accordingly. However when you scroll, the visible region changes. When you type in new commands again tho, the visible region jumps back to equal the active region.
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    9afa6c6 View commit details
    Browse the repository at this point in the history
  5. Fix cursor rendering

    This might have messed up the 'selected' colours... Have to check later
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    aa4666d View commit details
    Browse the repository at this point in the history
  6. Improved move_visible_region_ functions

    Now they work properly with `lines` > 1.
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    0140e7b View commit details
    Browse the repository at this point in the history
  7. Implement a really naive version of mouse scrolling

    This completely ignores existing mouse input handling (eg: the `normal_report` function or `scroll_px` field) and only works with a `LineDelta`. Additionally, there is a hardcoded scroll sensitivity of 5.0. This should probably go in the config.
    
    Already I've noticed there is flickering every now and then while scrolling. I'll have to investigate what is causing this.
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    d0be4bf View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    fdc2705 View commit details
    Browse the repository at this point in the history
  9. Beginning to fix tests

    Now they compile.. Running: they all fail atm :D
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    f74f55a View commit details
    Browse the repository at this point in the history
  10. Fixed bug when scrolling by more than 1 line at a time.

    It incorrectly reported `AtBottom` or `AtTop`, meaning that the dirty flag was not set and the terminal wasn't re-rendered.
    
    Now the scroll logic is split into three cases: (a) its already at the top/bottom (b) after this movement it *will* be at the top/bottom (c) none of the above.
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    fb64bab View commit details
    Browse the repository at this point in the history
  11. Added support for PixelDelta scrolling

    thanks jwilm, I tried make the implementation a little more DRY, hopefully I didn't break anything through doing so.
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    7c028d1 View commit details
    Browse the repository at this point in the history
  12. Changed scroll_back_amount to visible_region_start.

    This makes it easier to understand what is going on. Instead of a distance from the end to the end of the visible region (scroll_back_amount), we simply store the starting cell of the visible region (visible_region_start). This makes various calculations easier.
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    a3dfe5d View commit details
    Browse the repository at this point in the history
  13. Improved escape sequence handling etc..

    Now it jumps to the bottom when pressing escape.
    
    Also some unecessary variables were removed.
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    1fe01ce View commit details
    Browse the repository at this point in the history
  14. Fixed crashes on resizing, nicer resizing behaviour.

    Now the window resize algorithm has been built around what I've observed in Gnome Terminal (and I imagine other terminals too)... The algorithm tries to make the bottom line stay the same when growing/shrinking the view. Sometimes this means the cursor needs to be clipped.
    
    There's one issue at the moment though: if you open a new terminal, enter fullscreen, then exit fullscreen - there will be an extra prompt in the scrollback buffer. This is really only a cosmetic issue, but still something I'd like to fix down the track. The only way I've thought of fixing this would be to aggressively delete those empty lines when exiting from fullscreen. Perhaps someone else can think of something?
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    e1e8943 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    24ca618 View commit details
    Browse the repository at this point in the history
  16. Added PageUp and PageDown commands

    Also modified the default key bindings to use those and `ScrollUp`/`ScrolDown`... The problem is, this overrides some of the existing keybindings. Which ones should take precedence?
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    4da641e View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    e62eaed View commit details
    Browse the repository at this point in the history
  18. Fix most of the failing test

    The rest of the failing tests happen when the test case causes
    scrolling. Not sure how to modify Grid to fix those.
    tbodt authored and top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    d636b4d View commit details
    Browse the repository at this point in the history
  19. Added config for scrollback (enabled and max_lines)

    At the moment, enabled=false is somewhat buggy. ie: it still will scroll if the window is resized...
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    27d7245 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    feda7b8 View commit details
    Browse the repository at this point in the history
  21. Made AbsoluteLine references stay constant even when lines are popp…

    …ed/swapped
    
    This is needed for fixing selections.
    
    Sneak peek: the new selections system will use `AbsolutePoint` instead of `Point` and so you'll be able to select anywhere in the grid, even outside the visible/active regions.
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    9977f00 View commit details
    Browse the repository at this point in the history
  22. Fixed selections

    Now all selections operate on `AbsoluteLine`s
    top-webmaster committed Sep 23, 2017
    Configuration menu
    Copy the full SHA
    bb54364 View commit details
    Browse the repository at this point in the history

Commits on Sep 24, 2017

  1. Configuration menu
    Copy the full SHA
    6c5039e View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2017

  1. Configuration menu
    Copy the full SHA
    aafe8c2 View commit details
    Browse the repository at this point in the history

Commits on Dec 10, 2017

  1. Added num and owned_slice, updated index::Line and added `index…

    …::AbsoluteLine`
    
    An `AbsoluteLine` represents an index (or length) into the complete scrollback buffer, rather than just the so-called 'active region'. This will be used in a select few methods within `Grid<T>`, while the rest of them are oblivious to whether scrollback is enabled or not, and continue to use `Line`.
    
    Given this distinction, I wonder if one should go further and distinguish between a `Line` as an index, and `NumLines` as a length. But perhaps that's too much verbosity.
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    9a24729 View commit details
    Browse the repository at this point in the history
  2. Wrapped the unlikely intrinsic with a safe function

    That said, idk why exactly it was unsafe to start with so perhaps this is incorrect.
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    a81a7f2 View commit details
    Browse the repository at this point in the history
  3. Switched to git repository for the owned_slice crate.

    It hasn't been published to crates.io yet.
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    2fe8764 View commit details
    Browse the repository at this point in the history
  4. Implement core scrollback functions

    This is accomplished by replacing the `Vec` buffer with a `VecDeque`.
    
    The *active region* represents the region in the buffer that is modifiable. It is essentially the latest `self.num_lines()` lines of the buffer.
    
    Upon start up, the *visible region* is equal to the active region, and when new lines are added the visible/active region both move accordingly. However when you scroll, the visible region changes. When you type in new commands again tho, the visible region jumps back to equal the active region.
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    0321592 View commit details
    Browse the repository at this point in the history
  5. Fix cursor rendering

    This might have messed up the 'selected' colours... Have to check later
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    4b22494 View commit details
    Browse the repository at this point in the history
  6. Improved move_visible_region_ functions

    Now they work properly with `lines` > 1.
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    8ae8812 View commit details
    Browse the repository at this point in the history
  7. Implement a really naive version of mouse scrolling

    This completely ignores existing mouse input handling (eg: the `normal_report` function or `scroll_px` field) and only works with a `LineDelta`. Additionally, there is a hardcoded scroll sensitivity of 5.0. This should probably go in the config.
    
    Already I've noticed there is flickering every now and then while scrolling. I'll have to investigate what is causing this.
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    0899f03 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    641e808 View commit details
    Browse the repository at this point in the history
  9. Beginning to fix tests

    Now they compile.. Running: they all fail atm :D
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    86db980 View commit details
    Browse the repository at this point in the history
  10. Fixed bug when scrolling by more than 1 line at a time.

    It incorrectly reported `AtBottom` or `AtTop`, meaning that the dirty flag was not set and the terminal wasn't re-rendered.
    
    Now the scroll logic is split into three cases: (a) its already at the top/bottom (b) after this movement it *will* be at the top/bottom (c) none of the above.
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    0394c70 View commit details
    Browse the repository at this point in the history
  11. Added support for PixelDelta scrolling

    thanks jwilm, I tried make the implementation a little more DRY, hopefully I didn't break anything through doing so.
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    2f198cb View commit details
    Browse the repository at this point in the history
  12. Changed scroll_back_amount to visible_region_start.

    This makes it easier to understand what is going on. Instead of a distance from the end to the end of the visible region (scroll_back_amount), we simply store the starting cell of the visible region (visible_region_start). This makes various calculations easier.
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    0147e44 View commit details
    Browse the repository at this point in the history
  13. Improved escape sequence handling etc..

    Now it jumps to the bottom when pressing escape.
    
    Also some unecessary variables were removed.
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    3720b90 View commit details
    Browse the repository at this point in the history
  14. Fixed crashes on resizing, nicer resizing behaviour.

    Now the window resize algorithm has been built around what I've observed in Gnome Terminal (and I imagine other terminals too)... The algorithm tries to make the bottom line stay the same when growing/shrinking the view. Sometimes this means the cursor needs to be clipped.
    
    There's one issue at the moment though: if you open a new terminal, enter fullscreen, then exit fullscreen - there will be an extra prompt in the scrollback buffer. This is really only a cosmetic issue, but still something I'd like to fix down the track. The only way I've thought of fixing this would be to aggressively delete those empty lines when exiting from fullscreen. Perhaps someone else can think of something?
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    a3516fc View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    b48a38c View commit details
    Browse the repository at this point in the history
  16. Added PageUp and PageDown commands

    Also modified the default key bindings to use those and `ScrollUp`/`ScrolDown`... The problem is, this overrides some of the existing keybindings. Which ones should take precedence?
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    3f0196e View commit details
    Browse the repository at this point in the history
  17. Fix most of the failing test

    The rest of the failing tests happen when the test case causes
    scrolling. Not sure how to modify Grid to fix those.
    tbodt authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    de925d9 View commit details
    Browse the repository at this point in the history
  18. Added config for scrollback (enabled and max_lines)

    At the moment, enabled=false is somewhat buggy. ie: it still will scroll if the window is resized...
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    9c0de27 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    b8a9f8b View commit details
    Browse the repository at this point in the history
  20. Made AbsoluteLine references stay constant even when lines are popp…

    …ed/swapped
    
    This is needed for fixing selections.
    
    Sneak peek: the new selections system will use `AbsolutePoint` instead of `Point` and so you'll be able to select anywhere in the grid, even outside the visible/active regions.
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    2797a3f View commit details
    Browse the repository at this point in the history
  21. Fixed selections

    Now all selections operate on `AbsoluteLine`s
    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    0198dc4 View commit details
    Browse the repository at this point in the history
  22. Fixed compilation of unit tests

    top-webmaster authored and chrisduerr committed Dec 10, 2017
    Configuration menu
    Copy the full SHA
    e206ddb View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    04a3bf2 View commit details
    Browse the repository at this point in the history

Commits on Dec 11, 2017

  1. Fix merge conflicts

    Rebased neon64/alacritty on top of the latest alacritty master. These
    are just some minor tweaks I had to do manually after merging.
    chrisduerr committed Dec 11, 2017
    Configuration menu
    Copy the full SHA
    7820a36 View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2017

  1. Fix existing ref tests

    Ref tests were broken because it assumed for existing tests that a
    scrollback buffer is present. To fix this a check for tests without
    scrollback has been added. Once a ref without scrollback is detected,
    only the visible buffer is compared.
    chrisduerr committed Dec 12, 2017
    Configuration menu
    Copy the full SHA
    f1a514b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bad5a5d View commit details
    Browse the repository at this point in the history

Commits on Dec 13, 2017

  1. Added num and owned_slice, updated index::Line and added `index…

    …::AbsoluteLine`
    
    An `AbsoluteLine` represents an index (or length) into the complete scrollback buffer, rather than just the so-called 'active region'. This will be used in a select few methods within `Grid<T>`, while the rest of them are oblivious to whether scrollback is enabled or not, and continue to use `Line`.
    
    Given this distinction, I wonder if one should go further and distinguish between a `Line` as an index, and `NumLines` as a length. But perhaps that's too much verbosity.
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    7a15800 View commit details
    Browse the repository at this point in the history
  2. Wrapped the unlikely intrinsic with a safe function

    That said, idk why exactly it was unsafe to start with so perhaps this is incorrect.
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    a1b59f6 View commit details
    Browse the repository at this point in the history
  3. Switched to git repository for the owned_slice crate.

    It hasn't been published to crates.io yet.
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    7628cfd View commit details
    Browse the repository at this point in the history
  4. Implement core scrollback functions

    This is accomplished by replacing the `Vec` buffer with a `VecDeque`.
    
    The *active region* represents the region in the buffer that is modifiable. It is essentially the latest `self.num_lines()` lines of the buffer.
    
    Upon start up, the *visible region* is equal to the active region, and when new lines are added the visible/active region both move accordingly. However when you scroll, the visible region changes. When you type in new commands again tho, the visible region jumps back to equal the active region.
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    fc3a220 View commit details
    Browse the repository at this point in the history
  5. Fix cursor rendering

    This might have messed up the 'selected' colours... Have to check later
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    2a57b38 View commit details
    Browse the repository at this point in the history
  6. Improved move_visible_region_ functions

    Now they work properly with `lines` > 1.
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    2c1807e View commit details
    Browse the repository at this point in the history
  7. Implement a really naive version of mouse scrolling

    This completely ignores existing mouse input handling (eg: the `normal_report` function or `scroll_px` field) and only works with a `LineDelta`. Additionally, there is a hardcoded scroll sensitivity of 5.0. This should probably go in the config.
    
    Already I've noticed there is flickering every now and then while scrolling. I'll have to investigate what is causing this.
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    f030716 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    fe55038 View commit details
    Browse the repository at this point in the history
  9. Beginning to fix tests

    Now they compile.. Running: they all fail atm :D
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    1878304 View commit details
    Browse the repository at this point in the history
  10. Fixed bug when scrolling by more than 1 line at a time.

    It incorrectly reported `AtBottom` or `AtTop`, meaning that the dirty flag was not set and the terminal wasn't re-rendered.
    
    Now the scroll logic is split into three cases: (a) its already at the top/bottom (b) after this movement it *will* be at the top/bottom (c) none of the above.
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    87c3b12 View commit details
    Browse the repository at this point in the history
  11. Added support for PixelDelta scrolling

    thanks jwilm, I tried make the implementation a little more DRY, hopefully I didn't break anything through doing so.
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    606f5fc View commit details
    Browse the repository at this point in the history
  12. Changed scroll_back_amount to visible_region_start.

    This makes it easier to understand what is going on. Instead of a distance from the end to the end of the visible region (scroll_back_amount), we simply store the starting cell of the visible region (visible_region_start). This makes various calculations easier.
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    2dbc8cb View commit details
    Browse the repository at this point in the history
  13. Improved escape sequence handling etc..

    Now it jumps to the bottom when pressing escape.
    
    Also some unecessary variables were removed.
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    c53535e View commit details
    Browse the repository at this point in the history
  14. Fixed crashes on resizing, nicer resizing behaviour.

    Now the window resize algorithm has been built around what I've observed in Gnome Terminal (and I imagine other terminals too)... The algorithm tries to make the bottom line stay the same when growing/shrinking the view. Sometimes this means the cursor needs to be clipped.
    
    There's one issue at the moment though: if you open a new terminal, enter fullscreen, then exit fullscreen - there will be an extra prompt in the scrollback buffer. This is really only a cosmetic issue, but still something I'd like to fix down the track. The only way I've thought of fixing this would be to aggressively delete those empty lines when exiting from fullscreen. Perhaps someone else can think of something?
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    69a4341 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    a91eb2d View commit details
    Browse the repository at this point in the history
  16. Added PageUp and PageDown commands

    Also modified the default key bindings to use those and `ScrollUp`/`ScrolDown`... The problem is, this overrides some of the existing keybindings. Which ones should take precedence?
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    b047c78 View commit details
    Browse the repository at this point in the history
  17. Fix most of the failing test

    The rest of the failing tests happen when the test case causes
    scrolling. Not sure how to modify Grid to fix those.
    tbodt authored and top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    266250c View commit details
    Browse the repository at this point in the history
  18. Added config for scrollback (enabled and max_lines)

    At the moment, enabled=false is somewhat buggy. ie: it still will scroll if the window is resized...
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    6292ee4 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    b174196 View commit details
    Browse the repository at this point in the history
  20. Made AbsoluteLine references stay constant even when lines are popp…

    …ed/swapped
    
    This is needed for fixing selections.
    
    Sneak peek: the new selections system will use `AbsolutePoint` instead of `Point` and so you'll be able to select anywhere in the grid, even outside the visible/active regions.
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    2bcc5c0 View commit details
    Browse the repository at this point in the history
  21. Fixed selections

    Now all selections operate on `AbsoluteLine`s
    top-webmaster committed Dec 13, 2017
    Configuration menu
    Copy the full SHA
    9358d29 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    8949b41 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    c9ae0b4 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    3302dc5 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    af853b4 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    8562562 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    7fa91b7 View commit details
    Browse the repository at this point in the history

Commits on Dec 14, 2017

  1. Configuration menu
    Copy the full SHA
    f5f9dff View commit details
    Browse the repository at this point in the history
  2. Disable scrollback in the alternate buffer

    In the xterm specification the escape sequence 1049 is used to switch to
    an alternate buffer and back. This is used by applications like `man` or
    `less` for hijacking the scrollback.
    
    With this commit whenever 1049h is sent, scrollback is disabled. And
    sending 1049l will then enable scrollback again and switch back to the
    normal buffer.
    chrisduerr committed Dec 14, 2017
    Configuration menu
    Copy the full SHA
    578038b View commit details
    Browse the repository at this point in the history
  3. Update Cargo.lock file

    Seems like the current Cargo.lock file doesn't work. So here's the
    updated version that should make everything work properly.
    chrisduerr committed Dec 14, 2017
    Configuration menu
    Copy the full SHA
    cb1ef5a View commit details
    Browse the repository at this point in the history

Commits on Dec 15, 2017

  1. Reset current_scrollback to true after unfullscreening

    Also only resets it to true if scrollback was enabled in the first place
    top-webmaster committed Dec 15, 2017
    Configuration menu
    Copy the full SHA
    22e1937 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c4d55b2 View commit details
    Browse the repository at this point in the history
  3. Add additional scrollback tests

    Added some additional tests. Most of these tests check the same thing as
    the existing tests but take scrollback into account.
    
    The vim_scrollback_scrolling_disabled check makes sure the normal
    scrollback is disabled inside of vim when the alternate screen buffer is
    active.
    
    The alternate_screen_buffer_(enter|exit) make sure the grid changes to
    the alternate buffer and back when the 1049 escape sequence is sent.
    chrisduerr committed Dec 15, 2017
    Configuration menu
    Copy the full SHA
    45bdf24 View commit details
    Browse the repository at this point in the history

Commits on Dec 16, 2017

  1. Merge pull request #6 from chrisduerr/scrollback

    Add additional scrollback tests
    top-webmaster committed Dec 16, 2017
    Configuration menu
    Copy the full SHA
    9946706 View commit details
    Browse the repository at this point in the history
  2. Fix ref tests

    Currently scrollback tests were failing because some fields were missing
    and the `currently_enabled` flag was mismatched.
    This is a first attempt at fixing this, with this commit all test work
    again.
    chrisduerr committed Dec 16, 2017
    Configuration menu
    Copy the full SHA
    c2f720d View commit details
    Browse the repository at this point in the history
  3. Improve old test detection

    The detection for old ref tests now works properly without any false
    positives. All tests still work.
    chrisduerr committed Dec 16, 2017
    Configuration menu
    Copy the full SHA
    c9c11b2 View commit details
    Browse the repository at this point in the history
  4. Redo alternate_screen_buffer_exit test

    I'm not 100% certain why this test was failing, but after redoing the
    test with a little different approach, everything seems to be going
    right now.
    chrisduerr committed Dec 16, 2017
    Configuration menu
    Copy the full SHA
    547cc5f View commit details
    Browse the repository at this point in the history

Commits on Dec 17, 2017

  1. Configuration menu
    Copy the full SHA
    991d906 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    abc38a0 View commit details
    Browse the repository at this point in the history
  3. Add scrollback to existing ref-tests

    All existing ref-test have been manually edited so they now have the
    scrollback field. This should be a better way to test the old tests with
    scrollback.
    chrisduerr committed Dec 17, 2017
    Configuration menu
    Copy the full SHA
    89d9097 View commit details
    Browse the repository at this point in the history

Commits on Dec 18, 2017

  1. Merge pull request #7 from chrisduerr/scrollback

    Fix failing ref tests
    top-webmaster committed Dec 18, 2017
    Configuration menu
    Copy the full SHA
    a46cbf0 View commit details
    Browse the repository at this point in the history
  2. Remove unnecessary public statement

    This is still a leftover from testing the ref test changes.
    chrisduerr committed Dec 18, 2017
    Configuration menu
    Copy the full SHA
    0ae3f55 View commit details
    Browse the repository at this point in the history

Commits on Dec 20, 2017

  1. Fixed resizing when scrollback is disabled, renamed some functions

    Issues with resize:
    `self.total_lines_in_buffer` was being used to calculate whether new lines should be added. This meant that lines weren't added when they needed to be.
    
    `move_visible_region_up` was actually used internally by `grow_lines`, and @chrisduerr's PR accidentally disabled it when scrollback was disabled. So I've moved the scrollback enabled check to inside `Term` instead. Idk if this is good in the future or not.
    
    Renames: `total_lines_in_buffer()` -> `num_absolute_lines()`, since not all those absolute lines were actually being stored in the buffer (it was misleading).
    
    `min_line` -> `min_absolute_line` -> reflects what it actually returns.. the minimum line in the active/visible region will always be `Line(0)` - we don't need a function for that.
    
    Also added an assertion that: `self.raw.len() >= self.absolute_to_raw_index(self.visible_region().end)`
    
    Also got rid of an extra `impl<T> Grid<T>` block, by moving its contents into the other one.
    top-webmaster committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    5d0f994 View commit details
    Browse the repository at this point in the history
  2. Added import

    top-webmaster committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    56deb00 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6836308 View commit details
    Browse the repository at this point in the history
  4. Remove unnecessary public statement

    This is still a leftover from testing the ref test changes.
    chrisduerr committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    f14a8d8 View commit details
    Browse the repository at this point in the history
  5. Fix failing ref tests

    The ref tests were failing because the `get_scrollback_enabled` method
    was checking for currently enabled scrollback, not absolutely enabled
    scrollback. This has been fixed by introducing a separate method for
    checking if it's enabled.
    
    To prevent this issue in the future the `get_scrollback_enabled` has
    also been renamed to `scrollback_currently_enabled` to make clear what
    is actually being tested.
    
    There were also a few public statements sprinkled around that were not
    necessary, those have been removed.
    chrisduerr committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    5b531b8 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    e27ee58 View commit details
    Browse the repository at this point in the history

Commits on Dec 21, 2017

  1. Merge pull request #9 from chrisduerr/scrollback

    Fix failing ref tests
    top-webmaster committed Dec 21, 2017
    Configuration menu
    Copy the full SHA
    a0b55ca View commit details
    Browse the repository at this point in the history