aboutsummaryrefslogtreecommitdiffstats
path: root/src/grid.rs
Commit message (Collapse)AuthorAgeFilesLines
* simplifyJesse Luehrs2021-11-201-31/+18
|
* more cursor_state_formatted fixesJesse Luehrs2021-11-201-0/+23
|
* fix another attribute issue with cursor_state_formattedJesse Luehrs2021-11-191-0/+13
|
* fix up some more issues with row_formattedJesse Luehrs2021-11-191-4/+20
| | | | handle cursor positioning and wrapping a bit better
* input validation for vpaJesse Luehrs2021-11-161-0/+7
|
* edition 2021Jesse Luehrs2021-11-161-1/+0
|
* expose some extra internal state to help reproduce line wrappingJesse Luehrs2021-11-161-85/+37
| | | | | | | | adds `row_wrapped` and `cursor_state_formatted` to allow you to better recreate the internal state of the cursor when using `rows_formatted`. also make `rows_formatted` keep track of the wrapping state itself, since there are some edge cases that aren't really able to easily be tracked externally.
* clippyJesse Luehrs2021-11-121-2/+2
|
* fix positioning cursor past end of line when there are wide charactersJesse Luehrs2019-12-071-12/+16
|
* one more try for leaving a cursor at the end of a rowJesse Luehrs2019-12-071-14/+18
|
* more line wrapping fixesJesse Luehrs2019-12-061-1/+0
|
* fix contents when a wrapped row is followed by an empty rowJesse Luehrs2019-12-061-1/+3
|
* also move the wide char check inside the loop for ECHJesse Luehrs2019-12-061-1/+1
|
* track fullwidth continuation cells explicitlyJesse Luehrs2019-12-051-8/+27
| | | | this makes the logic a bit easier to follow
* fix a couple more issues with end of line behaviorJesse Luehrs2019-12-051-6/+98
|
* handle wrapped cursors properly on outputJesse Luehrs2019-11-201-2/+46
|
* actually resize the underlying grid when requestedJesse Luehrs2019-11-121-0/+8
|
* a few more movement tweaksJesse Luehrs2019-11-111-6/+2
|
* preserve all text attributes on cleared cellsJesse Luehrs2019-11-111-17/+17
| | | | | | | some terminals require it (alacritty wants to render underline and inverse state of cleared cells, for instance, so we have to be sure that the diff algorithm will properly reset the cursor attributes before clearing cells)
* stop using formats at allJesse Luehrs2019-11-111-14/+6
| | | | they are too slow
* simplifyJesse Luehrs2019-11-101-2/+2
|
* optimize attribute setting a bitJesse Luehrs2019-11-101-6/+15
|
* optimize cursor movement a bitJesse Luehrs2019-11-101-34/+23
|
* shuffle around some methodsJesse Luehrs2019-11-101-8/+8
|
* implement scrolling backJesse Luehrs2019-11-091-22/+57
|
* optionally save scrollback rowsJesse Luehrs2019-11-091-2/+21
|
* refactor terminal writingJesse Luehrs2019-11-091-34/+52
|
* ignore the scroll region when moving if we're already outside of itJesse Luehrs2019-11-081-4/+12
|
* contents_formatted should also reset attributesJesse Luehrs2019-11-081-1/+1
| | | | for the same reason as contents_diff
* VPA should not be restricted to the scroll regionJesse Luehrs2019-11-081-2/+0
| | | | since it is absolute positioning
* fix RI at the top of the screenJesse Luehrs2019-11-081-1/+8
|
* clearing cells sets the background colorJesse Luehrs2019-11-081-17/+17
|
* also add a rows_diff methodJesse Luehrs2019-11-061-1/+1
|
* make row.contents_diff not require the row indexJesse Luehrs2019-11-061-5/+3
|
* stop pretending to support left/right scroll regionsJesse Luehrs2019-11-061-8/+1
|
* contents_formatted should additionally clear the screenJesse Luehrs2019-11-061-1/+1
|
* contents_formatted and contents_diff should also restore the cursorJesse Luehrs2019-11-061-2/+29
| | | | since the cursor is a visible part of the terminal
* reset attrs at the start of diffsJesse Luehrs2019-11-051-1/+1
| | | | | otherwise they might inherit the attrs state from the end of the previous state
* add functionality for diffing two terminal screensJesse Luehrs2019-11-051-0/+19
|
* adjust the way window contents are reportedJesse Luehrs2019-11-051-29/+14
| | | | | | | | | | | | | | | | contents and contents_formatted now only allow getting the entire terminal contents, and for any other uses we now provide rows and rows_formatted. the reasoning here is that it wasn't particularly useful to return newline (or crlf) separated lines when not drawing the full terminal, since it's not like you can send those to the terminal in any meaningful way anyway (like, if you wanted to draw a subset of the terminal state, you'll almost certainly need to be doing explicit positioning on your own, since crlf is only actually correct if you're drawing the screen subset in the upper left hand corner of the screen). with this, you can draw each (subset of a) line individually, and reposition the cursor in whatever way makes sense in between drawing the lines.
* stop wrapping if the number of cols changesJesse Luehrs2019-11-051-0/+6
|
* contents_formatted should return a Vec<u8>Jesse Luehrs2019-11-051-7/+16
| | | | | the overall terminal escape sequence byte stream is not necessarily utf8-safe, even if individual cell contents are
* add Clone and Debug to ScreenJesse Luehrs2019-11-051-0/+1
|
* stop reallocating vecs so muchJesse Luehrs2019-11-041-4/+18
|
* more useful contents/contents_formatted behaviorJesse Luehrs2019-11-041-2/+2
|
* decsc should also save graphic rendition and origin modeJesse Luehrs2019-11-031-2/+6
|
* rename some methodsJesse Luehrs2019-11-031-2/+2
|
* fix off-by-one in erase_row_backwardJesse Luehrs2019-11-031-1/+1
| | | | | fixes behavior of CSI 1 J and CSI 1 K (which are not particularly commonly used, which is why this was missed before)
* fmtJesse Luehrs2019-11-031-20/+7
|
* simplifyJesse Luehrs2019-11-031-10/+12
|