| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 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 | |
| 2023-12-27 | Fix a bug in how unicode is printed. | Rose Hogenson | 2 | -23/+28 | |
| 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-26 | Add function to get terminal size. | Rose Hogenson | 4 | -10/+52 | |
| 2023-12-26 | Add the basic rope. | Rose Hogenson | 2 | -1/+116 | |
| 2023-12-26 | Start text editor. | Rose Hogenson | 4 | -0/+19 | |
