| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 2024-01-12 | Try to avoid copies. | Rose Hogenson | 1 | -42/+72 | |
| 2024-01-12 | Start tuning the performance of rope. | Rose Hogenson | 6 | -60/+634 | |
| 2024-01-12 | Update Cargo.lock. | Rose Hogenson | 1 | -1/+1 | |
| 2024-01-12 | Release version 1.0 | Rose Hogenson | 1 | -1/+1 | |
| 2024-01-12 | Support the delete key. | Rose Hogenson | 1 | -0/+4 | |
| For now it's exactly the same as backspace. | |||||
| 2024-01-12 | Allow 4~ for End. | Rose Hogenson | 1 | -1/+1 | |
| This seems to be what GNU screen provides, at least. | |||||
| 2024-01-12 | Fix a bug where cursor_pos would return old data. | Rose Hogenson | 2 | -148/+186 | |
| For now I'm just counting the failures, and aborting if cursor_pos immediately failed before. We have to skip the incoming status reports with read_key before cursor_pos will start working again. This should flush any old status reports, and prevent reading them incorrectly. | |||||
| 2024-01-11 | Implement Home, End, PgUp, and PgDn. | Rose Hogenson | 3 | -22/+117 | |
| 2024-01-11 | Apply a clippy suggestion. | Rose Hogenson | 1 | -1/+1 | |
| 2024-01-11 | Don't call read immediately in cursor_pos. | Rose Hogenson | 1 | -2/+1 | |
| I forgot that read can block. We actually don't want cursor_pos to block for user input before querying, since it will fail nearly every time. It did give me a good opportunity to test the error handling though. | |||||
| 2024-01-11 | Keep the cursor position on error. | Rose Hogenson | 1 | -8/+9 | |
| Now it handles errors so well! You can barely tell that nearly all of the calls to cursor_pos are failing. | |||||
| 2024-01-11 | Do a little more to handle errors. | Rose Hogenson | 1 | -1/+7 | |
| 2024-01-11 | Don't read the wrong value in cursor_pos. | Rose Hogenson | 1 | -0/+6 | |
| It seems like sometimes a slow terminal like lxterminal can take a little while to respond with the cursor position, so the read can time out. If it does, a later call to cursor_pos could read it in. To prevent this, we can call read before even querying the position. If there are any previous pending status responses, this should hopefully read them in, and we can abort early without getting confused. If there is no buffered data on stdin, then it's hopefully safe to write the status query and read the response. | |||||
| 2024-01-11 | Optimize for ASCII case in floor/ceil_grapheme. | Rose Hogenson | 1 | -1/+4 | |
| 2024-01-11 | Optimise line_offset for the ASCII case. | Rose Hogenson | 2 | -0/+38 | |
| 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-11 | Fix the cursor behavior at line endings. | Rose Hogenson | 1 | -4/+6 | |
| 2024-01-11 | Rewrite the entire thing. | Rose Hogenson | 3 | -746/+754 | |
| 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-07 | Support backspace in xterm. | Rose Hogenson | 1 | -1/+3 | |
| Backspace: Cooler backspace: | |||||
| 2024-01-07 | Be more efficient with full screen refreshes. | Rose Hogenson | 1 | -2/+15 | |
| xterm has some bad flickering if I just naively repaint the whole screen every time. We can easily track whether we need to repaint the whole screen or just the line. | |||||
| 2024-01-07 | Make undo a bit less weird. | Rose Hogenson | 1 | -17/+22 | |
| 2024-01-07 | Support pasting text into the editor. | Rose Hogenson | 2 | -108/+171 | |
| 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-07 | Avoid an extra copy. | Rose Hogenson | 1 | -11/+7 | |
| 2024-01-07 | Add a README. | Rose Hogenson | 1 | -0/+8 | |
| That's how you get the github stars | |||||
| 2024-01-07 | Implement redo. | Rose Hogenson | 2 | -49/+86 | |
| Is this how redo works? | |||||
| 2024-01-06 | Implement undo. | Rose Hogenson | 2 | -12/+46 | |
| 2024-01-06 | Use a b-tree for the rope. | Rose Hogenson | 3 | -160/+352 | |
| Now it's balanced :D | |||||
| 2024-01-06 | Fix some bugs with long lines. | Rose Hogenson | 2 | -41/+8 | |
| 2024-01-06 | Implement backspace. | Rose Hogenson | 3 | -5/+23 | |
| 2024-01-06 | Fix input issues when scrolling quickly. | Rose Hogenson | 2 | -17/+31 | |
| 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-06 | Support inserting newline. | Rose Hogenson | 2 | -37/+91 | |
| 2024-01-06 | Allow scrolling up and down. | Rose Hogenson | 2 | -13/+23 | |
| 2024-01-06 | Truncate long lines. | Rose Hogenson | 2 | -22/+58 | |
| 2024-01-06 | Wrap the cursor around at the ends of a line. | Rose Hogenson | 1 | -5/+12 | |
| 2024-01-06 | Use more idiomatic error handling. | Rose Hogenson | 3 | -178/+82 | |
| 2024-01-06 | Fix unicode handling. | Rose Hogenson | 2 | -68/+212 | |
| It's hard to say if this counts as "fixed," but I think it's at least better than GNU nano. | |||||
| 2024-01-05 | Clean up the rope code. | Rose Hogenson | 2 | -216/+139 | |
| 2023-12-29 | Allow saving the file with CTRL-S. | Rose Hogenson | 3 | -1/+29 | |
| 2023-12-29 | Support inserting text. | Rose Hogenson | 3 | -6/+71 | |
| 2023-12-29 | Keep track of cursor position. | Rose Hogenson | 2 | -31/+172 | |
| 2023-12-29 | Allow moving the cursor with the arrow keys. | Rose Hogenson | 2 | -20/+82 | |
| 2023-12-27 | Wait for ctrl-q to exit. | Rose Hogenson | 1 | -9/+26 | |
| 2023-12-27 | Add some TODOs for important enhancements. | Rose Hogenson | 1 | -0/+2 | |
| 2023-12-27 | Wait for keypress before exiting. | Rose Hogenson | 1 | -2/+17 | |
| 2023-12-27 | Handle error from putting terminal in raw mode. | Rose Hogenson | 1 | -1/+6 | |
| 2023-12-27 | Print each line separately. | Rose Hogenson | 2 | -28/+20 | |
| Now that the terminal is in raw mode, we need to also include \r after each line. | |||||
| 2023-12-27 | Put the terminal in raw mode. | Rose Hogenson | 2 | -11/+56 | |
| 2023-12-27 | Rename tiocgwinsz.rs to term.rs. | Rose Hogenson | 2 | -2/+2 | |
| I will be putting more functionality in this file. | |||||
| 2023-12-27 | Use stdout to get terminal size. | Rose Hogenson | 1 | -1/+1 | |
| 2023-12-27 | Print the first n lines of the file. | Rose Hogenson | 2 | -6/+85 | |
| 2023-12-27 | Remove unnecessary length field. | Rose Hogenson | 1 | -11/+9 | |
