aboutsummaryrefslogtreecommitdiff
path: root/src/grid/row.rs
Commit message (Collapse)AuthorAge
* Split alacritty into a separate cratesTheodore Dubois2019-04-28
| | | | | The crate containing the entry point is called alacritty, and the crate containing everything else is called alacritty_terminal.
* Remove redundant closures and importsMatthias Krüger2019-04-11
|
* Add rustfmt style guideChristian Duerr2019-03-30
|
* Add text reflowChristian Duerr2019-03-13
| | | | | | | | | | | | | | | | | | | | 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.
* Upgrade to Rust 2018Joe Wilm2018-12-10
| | | | | This resolves a lot of NLL issues, however full NLL will be necessary to handle a couple of remaining issues.
* Use tool lints for clippy allow/deny lint attributesMatthias Krüger2018-12-07
|
* Fix style issuesMatthias Krüger2018-09-17
|
* Scrollback cleanupChristian Duerr2018-07-21
| | | | | | 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.
* Optimize Row::resetJoe Wilm2018-06-02
| | | | | | | | | | | | | | 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.
* fixup! Add assert to Row::growJoe Wilm2018-06-02
| | | | Resolves #1337
* Add assert to Row::growJoe Wilm2018-06-02
| | | | | This enforces the invariant that Row::Grow is only called when the row actually needs to be grown.
* Fix BCE ref testsJoe Wilm2018-06-02
| | | | | BCE was broken in attempt to optimize row clearing. The fix is to revert to passing in the current cursor state when clearing.
* Move selection into GridJoe Wilm2018-06-02
| | | | | | | | | | | 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.
* checkpoint: very basic scrolling worksJoe Wilm2018-06-02
| | | | | | | Things that do not work - Limiting how far back in the buffer it's possible to scroll - Selections (need to transform to buffer offsets)
* wip scrollbackJoe Wilm2018-06-02
|
* Use memcpy for resetting row contentsJoe Wilm2018-06-02
| | | | | | In addition to a marginal performance improvement, this simplifies some logic in the Term implementation since now the Grid fully handles row recycling.
* Remove some unused methods and implsJoe Wilm2018-06-02
|
* Move grid Row and tests into submodulesJoe Wilm2018-06-02
This is part of some cleanup for the grid module as a whole.