summaryrefslogtreecommitdiff
path: root/src/grid/row.rs
AgeCommit message (Collapse)Author
2019-04-28Split alacritty into a separate cratesTheodore Dubois
The crate containing the entry point is called alacritty, and the crate containing everything else is called alacritty_terminal.
2019-04-11Remove redundant closures and importsMatthias Krüger
2019-03-30Add rustfmt style guidev0.3.0-rc1Christian Duerr
2019-03-13Add text reflowChristian Duerr
Alacritty will now automatically reflow lines and shrink them when they would usually exceed the new width of the terminal instead of truncation. If a line had to be truncated, it will also be reflown into the previous line after growing the terminal width. The reflow behavior when not at the bottom of the history is similar to that of VTE and aims to keep the viewport stationary whenever possible. Opposed to VTE, reflow will also be performed in the alternate screen buffer. There will be bugs when resizing the terminal emulator to a size smaller than the prompt, though these issues were present in all terminal emulators with reflow support. This fixes #591.
2018-12-10Upgrade to Rust 2018Joe Wilm
This resolves a lot of NLL issues, however full NLL will be necessary to handle a couple of remaining issues.
2018-12-07Use tool lints for clippy allow/deny lint attributesMatthias Krüger
2018-09-17Fix style issuesMatthias Krüger
2018-07-21Scrollback cleanupChristian Duerr
There were some unneeded codeblocks and TODO/XXX comments in the code that have been removed. All issues marked with TODO/XXX have either been already resolved or tracking issues exist.
2018-06-02Optimize Row::resetJoe Wilm
Now, only cells that have been used are cleared. This is achieved by using a "occupied" memo on the Row itself. The value, `occ`, is updated wherever the Row is accessed mutably, and it's cleared to zero in Row::reset. The tests for grid scroll_up and scroll_down were updated to include a test on the value `occ` and slightly refactored, but are otherwise equivalent to the previous implementation of those tests. Because of the change to the `Row` struct, the ref tests were updated so Deserialization keeps working as expected.
2018-06-02fixup! Add assert to Row::growJoe Wilm
Resolves #1337
2018-06-02Add assert to Row::growJoe Wilm
This enforces the invariant that Row::Grow is only called when the row actually needs to be grown.
2018-06-02Fix BCE ref testsJoe Wilm
BCE was broken in attempt to optimize row clearing. The fix is to revert to passing in the current cursor state when clearing.
2018-06-02Move selection into GridJoe Wilm
Supporting selections with scrollback has two major components: 1. Grid needs access to Selection so that it may update the scroll position as the terminal text changes. 2. Selection needs to be implemented in terms of buffer offsets -- NOT lines -- and be updated when Storage is rotated. This commit implements the first part.
2018-06-02checkpoint: very basic scrolling worksJoe Wilm
Things that do not work - Limiting how far back in the buffer it's possible to scroll - Selections (need to transform to buffer offsets)
2018-06-02wip scrollbackJoe Wilm
2018-06-02Use memcpy for resetting row contentsJoe Wilm
In addition to a marginal performance improvement, this simplifies some logic in the Term implementation since now the Grid fully handles row recycling.
2018-06-02Remove some unused methods and implsJoe Wilm
2018-06-02Move grid Row and tests into submodulesJoe Wilm
This is part of some cleanup for the grid module as a whole.