aboutsummaryrefslogtreecommitdiffstats
path: root/src/screen.rs
Commit message (Collapse)AuthorAgeFilesLines
* clippyHEADmainJesse Luehrs2023-08-061-1/+1
|
* Add support for CSI E/F (next and previous line)Danny Weinberg2023-04-171-0/+12
| | | | | | | | This adds support for the following two operations: - https://vt100.net/docs/vt510-rm/CNL.html - https://vt100.net/docs/vt510-rm/CPL.html While it looks like these weren't technically implemented in the vt100, it does seem that a number of modern terminals (iTerm2, Windows Terminal, as two examples) support them.
* remove Perform implementation from the screen directlyJesse Luehrs2023-03-091-266/+54
| | | | | now that people can get mutable screens, this exposes api surface that i don't really want
* implement callback for terminal resize requestJesse Luehrs2023-03-091-0/+14
|
* use callbacks for events rather than tracking countersJesse Luehrs2023-03-091-88/+4
|
* simplifyJesse Luehrs2023-03-091-31/+19
|
* allow getting a mutable screen, and move some operations thereJesse Luehrs2023-03-091-5/+16
|
* clippyJesse Luehrs2023-02-051-41/+45
|
* let's actually stop being so aggressive hereJesse Luehrs2021-12-141-26/+28
|
* also stop using as castsJesse Luehrs2021-12-141-6/+6
|
* replace all uses of unwrap(), expect(), and indexing with unreachable!()Jesse Luehrs2021-12-141-25/+160
| | | | and also document why they are unreachable
* remove current_cell/current_cell_mutJesse Luehrs2021-12-141-3/+4
| | | | | | | it had an unstated precondition that the cursor was not positioned off the end of a row, which happened to be true in all existing uses, but was hard to verify. moving the unwrap out to the call site makes it easier to audit each use.
* remove unnecessary conditionJesse Luehrs2021-12-141-15/+6
| | | | | we already wrapped (by calling col_wrap) so pos.col will always be less than size.cols
* just pass in the row on its ownJesse Luehrs2021-12-141-40/+19
|
* clean up clippy stuffJesse Luehrs2021-12-131-3/+2
|
* ensure that diffing a screen against itself always returns nothingJesse Luehrs2021-12-101-0/+1
|
* add Screen::errorsJesse Luehrs2021-12-061-0/+23
|
* better (i think?) handling of weird character widthsJesse Luehrs2021-12-061-1/+6
| | | | | control codes are ignored completely, and everything else defaults to 1 instead of 0
* delay allocation of the alternate screenJesse Luehrs2021-12-041-1/+4
|
* fix receiving empty paramsJesse Luehrs2021-12-031-5/+5
|
* wide continuation cells should not have attributesJesse Luehrs2021-12-031-1/+1
| | | | it confuses things like cell insertion
* another wide char/line wrapping edge caseJesse Luehrs2021-12-031-6/+12
|
* more line wrapping bugsJesse Luehrs2021-11-191-1/+1
|
* fix up some more issues with row_formattedJesse Luehrs2021-11-191-8/+20
| | | | handle cursor positioning and wrapping a bit better
* remove special casing for combined character wrappingJesse Luehrs2021-11-191-13/+2
| | | | | | | the comment here is just... not true? not really sure why i thought it was, but testing on all of alacritty, xterm, and tmux show the opposite behavior to what is in the comment, so i'm going to assume this is just wrong
* edition 2021Jesse Luehrs2021-11-161-1/+0
|
* expose some extra internal state to help reproduce line wrappingJesse Luehrs2021-11-161-7/+42
| | | | | | | | 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.
* reorder the functionsJesse Luehrs2021-11-121-6/+6
|
* add a function to return whether the alternate screen is in useJesse Luehrs2021-11-121-0/+6
|
* clippyJesse Luehrs2021-11-121-16/+16
|
* add Screen::state_formatted and Screen::state_diffJesse Luehrs2021-03-091-0/+26
|
* fix attributes_formatted, remove attributes_diffJesse Luehrs2021-03-091-14/+7
| | | | also improve the documentation and add more tests
* drop enumset dependencyJesse Luehrs2021-03-071-43/+40
|
* also provide methods to restore the current drawing attribute stateJesse Luehrs2021-03-071-0/+38
|
* add methods to retrieve the current drawing state attributesJesse Luehrs2021-03-061-0/+40
|
* support sgr with subparametersJesse Luehrs2021-03-051-46/+105
|
* clippyJesse Luehrs2021-03-051-4/+4
|
* bump vteJesse Luehrs2021-03-051-106/+110
|
* add contents_between, for things like clipboard selectionsJesse Luehrs2020-05-111-0/+59
|
* clippyJesse Luehrs2020-02-091-0/+24
|
* bump vte versionJesse Luehrs2020-02-091-6/+12
|
* need to update pos after potentially wrappingJesse Luehrs2019-12-061-0/+1
|
* fix contents when a wrapped row is followed by an empty rowJesse Luehrs2019-12-061-1/+1
|
* zero-width characters shouldn't clear wide charactersJesse Luehrs2019-12-061-32/+33
|
* simplify the behavior around end of line wrapping hereJesse Luehrs2019-12-051-16/+7
| | | | | | the behavior i was aiming for had way too many special cases, so just stop trying to do it and do the simple thing instead (this is all stuff that is essentially never going to come up in reality).
* fix applying combining characters to wide charactersJesse Luehrs2019-12-051-3/+20
|
* track fullwidth continuation cells explicitlyJesse Luehrs2019-12-051-38/+85
| | | | this makes the logic a bit easier to follow
* fix a couple more issues with end of line behaviorJesse Luehrs2019-12-051-10/+36
|
* combining characters should also trigger a cursor wrapJesse Luehrs2019-11-201-1/+10
| | | | | this seems pretty weird, but it is what all other terminals i can find do, so
* fix zero width characters at the end of a rowJesse Luehrs2019-11-131-1/+1
|