Releases: RetroDev256/line_editor
Release 0.0.9
This is by far the most advanced release yet!
Added the ability to specify your current line in ranges, using the ^
symbol.
Added the ability to specify a position+length
instead of a start->end
in ranges. (Use ;
instead of ,
in the range string)
Added regex-matching print and delete functions - put a regular expression right after the print/delete command, and it will only display/delete those lines :)
By default, the print command now prints out to fill your terminal! Super fancy.
The regex is much more advanced than it was ever before! (except when MVZR was in here, but it is too advanced for this use case.)
Things over all are just improved/more robust.
Also, lots of testing coverage now!
Release 0.0.8
This release changes the usability of the program - basically, the printing function works slightly better with line numbers, and many functions have been re-written to simplify the implementation, optimize a few edge cases, provide more robustness... and now you can insert/move/copy stuff past the end of the buffer, instead of needing to do it line-by-line. :)
I also changed the way I passed around readers and writers.
All in all, the positive changes measured a net loss in binary size, woohoo!
Release 0.0.7
Tons of bugfixes, reorganization, simplification, auditing, a new "copy" command... oh, and you can now save to files starting with 'q', due to changing the parser for the save command to have a space between the command and the file name.
Release 0.0.6
remove a debug print & more testing
Release 0.0.5
TONS of bugfixes:
- did comprehensive manual code coverage using kcov
- tested every possible command for correctness
Release 0.0.4
Basically rewrote everything
- it is now more robust
- error handling is better
- tons of assertions everywhere
Release 0.0.3
bugfixes...
and a new command!
say hello to m
[RANGE?]m[INDEX]
moves text in RANGE to INDEX
also removed duplicate binaries :)
Release 0.0.2
removed MVZR -
No more regex, but I find with a simple program like this, we don't need much
maybe I will add it back in the future with a custom made impl.
let's focus on the small things first :)
reworked line buffer -
no more memory usage beyond what is in the file :)
Release 0.0.1
This release fixes a few bugs, and introduces many more targets. I thought it would be funny.
Disclaimer: I have neither the means, nor the willpower to test all these binaries XD
Release 0.0.0
pretty basic release, but a fun program to mess around with
Welcome to the simple line editor.
You are currently on line 1, out of 0 lines total.
Internal Memory:
MODE COMMAND or EDIT (swap using .)
LINE the current line number
FILE the current output file name
Basic Types:
NUMBER any sequence of base-10 digits
STRING any sequence of bytes
REGEX / deliminated regular expression
INDEX:
NUMBER line NUMBER
$ the last line
RANGE:
INDEX the range spanning [INDEX, INDEX]
INDEX, the range spanning [INDEX, the last line]
,INDEX the range spanning [0, INDEX]
A,B the range spanning [A (INDEX), B (INDEX)]
Commands (for EDIT MODE):
. MODE <- COMMAND
[STRING] inserts STRING at LINE, LINE <- LINE + 1
Commands (for COMMAND MODE):
d deletes 1 line at LINE
[RANGE]d deletes all lines in RANGE
. MODE <- EDIT
[INDEX]. LINE <- INDEX, MODE <- EDIT
.[STRING] inserts STRING at LINE
[INDEX].[STRING] LINE <- INDEX, inserts STRING at LINE
[INDEX] LINE <- INDEX
p prints 16 lines at LINE
[RANGE]p prints all lines in RANGE
s/[OLD]/[NEW] replaces all OLD (REGEX) for NEW on LINE
[RANGE]s/[OLD]/[NEW] replaces all OLD (REGEX) for NEW in RANGE
w saves all lines to FILE
[RANGE]w saves all lines in RANGE to FILE
w [NAME] FILE <- NAME, saves all lines to FILE
[RANGE]w [NAME] FILE <- NAME, saves all lines in RANGE to FILE
wq saves all lines to FILE, exits
[RANGE]wq saves all lines in RANGE to FILE, exits
wq [NAME] FILE <- NAME, saves all lines to FILE, exits
[RANGE]wq [NAME] FILE <- NAME, saves all lines in RANGE to FILE, exits
q exits
h displays this text
```