aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
AgeCommit message (Collapse)AuthorFilesLines
2024-01-07Make undo a bit less weird.Rose Hogenson1-17/+22
2024-01-07Support pasting text into the editor.Rose Hogenson1-93/+94
The editor only repaints when there is a small delay in the input, which only happens when the user is typing. Otherwise the bytes go straight into the buffer.
2024-01-07Implement redo.Rose Hogenson1-49/+81
Is this how redo works?
2024-01-06Implement undo.Rose Hogenson1-12/+41
2024-01-06Use a b-tree for the rope.Rose Hogenson1-59/+98
Now it's balanced :D
2024-01-06Fix some bugs with long lines.Rose Hogenson1-5/+7
2024-01-06Implement backspace.Rose Hogenson1-4/+17
2024-01-06Fix input issues when scrolling quickly.Rose Hogenson1-15/+30
Unfortunately the user input comes on the same channel as the terminal status report from 6n, so there's a possibility of getting confused here. As long as the program is relatively efficient, it shouldn't be observable.
2024-01-06Support inserting newline.Rose Hogenson1-32/+73
2024-01-06Allow scrolling up and down.Rose Hogenson1-11/+21
2024-01-06Truncate long lines.Rose Hogenson1-22/+41
2024-01-06Wrap the cursor around at the ends of a line.Rose Hogenson1-5/+12
2024-01-06Use more idiomatic error handling.Rose Hogenson1-91/+50
2024-01-06Fix unicode handling.Rose Hogenson1-60/+134
It's hard to say if this counts as "fixed," but I think it's at least better than GNU nano.
2024-01-05Clean up the rope code.Rose Hogenson1-16/+6
2023-12-29Allow saving the file with CTRL-S.Rose Hogenson1-0/+5
2023-12-29Support inserting text.Rose Hogenson1-4/+15
2023-12-29Keep track of cursor position.Rose Hogenson1-10/+65
2023-12-29Allow moving the cursor with the arrow keys.Rose Hogenson1-20/+27
2023-12-27Wait for ctrl-q to exit.Rose Hogenson1-9/+26
2023-12-27Wait for keypress before exiting.Rose Hogenson1-2/+17
2023-12-27Handle error from putting terminal in raw mode.Rose Hogenson1-1/+6
2023-12-27Print each line separately.Rose Hogenson1-2/+4
Now that the terminal is in raw mode, we need to also include \r after each line.
2023-12-27Put the terminal in raw mode.Rose Hogenson1-0/+2
2023-12-27Rename tiocgwinsz.rs to term.rs.Rose Hogenson1-2/+2
I will be putting more functionality in this file.
2023-12-27Print the first n lines of the file.Rose Hogenson1-2/+4
2023-12-27Fix a bug in how unicode is printed.Rose Hogenson1-1/+1
Technically a single character can be split across multiple chunks, so we can just join all the chunks before printing. It's not the most efficient, but this is only for debugging.
2023-12-26Add function to get terminal size.Rose Hogenson1-10/+24
2023-12-26Add the basic rope.Rose Hogenson1-1/+20
2023-12-26Start text editor.Rose Hogenson1-0/+3