aboutsummaryrefslogtreecommitdiffstats
path: root/src/rope.rs
AgeCommit message (Collapse)AuthorFilesLines
2024-01-11Implement Home, End, PgUp, and PgDn.Rose Hogenson1-8/+9
2024-01-11Optimise line_offset for the ASCII case.Rose Hogenson1-0/+19
In most cases we really won't need the full binary search. We can check quickly for ASCII without ever printing anything, and fall back to binary search if we find any Unicode characters.
2024-01-11Rewrite the entire thing.Rose Hogenson1-309/+250
They say you can always do a better job on the rewrite, and to a certain extent that was true here. I kept a lot of it the same though, since there was a lot I liked from the original design. The main improvements are in efficiency and code clarity.
2024-01-07Avoid an extra copy.Rose Hogenson1-11/+7
2024-01-06Use a b-tree for the rope.Rose Hogenson1-96/+242
Now it's balanced :D
2024-01-06Fix some bugs with long lines.Rose Hogenson1-36/+1
2024-01-06Implement backspace.Rose Hogenson1-1/+1
2024-01-06Fix input issues when scrolling quickly.Rose Hogenson1-2/+1
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-5/+18
2024-01-06Allow scrolling up and down.Rose Hogenson1-2/+2
2024-01-06Truncate long lines.Rose Hogenson1-0/+17
2024-01-06Use more idiomatic error handling.Rose Hogenson1-56/+8
2024-01-06Fix unicode handling.Rose Hogenson1-8/+78
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-200/+133
2023-12-29Allow saving the file with CTRL-S.Rose Hogenson1-1/+19
2023-12-29Support inserting text.Rose Hogenson1-0/+54
2023-12-29Keep track of cursor position.Rose Hogenson1-21/+107
2023-12-27Add some TODOs for important enhancements.Rose Hogenson1-0/+2
2023-12-27Print each line separately.Rose Hogenson1-26/+16
Now that the terminal is in raw mode, we need to also include \r after each line.
2023-12-27Print the first n lines of the file.Rose Hogenson1-4/+81
2023-12-27Remove unnecessary length field.Rose Hogenson1-11/+9
2023-12-27Fix a bug in how unicode is printed.Rose Hogenson1-22/+27
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 the basic rope.Rose Hogenson1-0/+96