Releases: brouberol/bo
Releases · brouberol/bo
0.4.0
Features
- Implement autocompletion based on user provided commands (ex:
:deb<TAB>
autocompletes to:debug
). Multiple completion suggestions can be cycled through, accepted or ignored. - Add support for Undo last operation, via the
u
command
Improvements
- Move the cursor on the first character of the currently selected autocompletion suggestion, to highlight it
- Allow multiple search occurences to be found in the same line
Fixes
- Move to the last available character when deleting a line that is longer that the previous one, with
d
- Reset the history when opening a new file
0.3.3
Features
- Introduce the
o
short command to open a file - Display cursor in the message bar while typing a command
Improvements
- Add strong types around row index VS line number to avoid conversion errors
- Move the cursor to the top left position when opening a new file
- Format the help sections titles in bold and automatically generate the help text
Fixes
- Fix erratic behavior when navigating into the current view, caused by using the terminal size and not the text area size
- Prevent crashes by using saturating arithmetic operations
- Prevent wrong jumps when inserting/deleting a line after the first half view
- Fix a bug preventing
bo
from being used as thegit
editor
0.3.2
Improvements
- When moving from a line to a shorter one, we now make sure the cursor don't overflow it by moving it to the last character when necessary.
- Display backtrackes on failing tests.
Fixes
- The hash of the last saved document is always updated when the save is successful, saving us from having to run
:q!
on a freshly saved doc.
0.3.1
Features
- Trailing spaces are now removed on save. Thanks @ilmanzo !
- New
NORMAL
mode command:J
, joins the current line with the previoue one - New
:debug
command, that dumps theEditor
state as JSON tobo.log
:w <filename>
allows us to save as / rename the file. Thanks @jim4067!
Improvements
bo --version
now outputs both the tag and git hash in debug mode- The welcome message is automatically hidden as soon as we start writing anything in an empty buffer
- Overal refactoring of the Position/Offset/x_offset typing system into a better design
Fixes
- Only save documents with a filename to a swap file, saving
bo
from crashing when attempting to generate the swap file name for an empty buffer - Pasting content with
Ctrl-v
no longer only paste half the content - A file that was modified, then put back to its original state will now be marked as "dirty" anymore.
v0.3.0
Many offsets/overflow bugs have been fixed. Many new navigation and UX features have been implemented:
m
now support finding the matching symbols over multiple lines- the cursor style depends on the mode
- display a marker if some unsaved changes have been made
- ask confirmation before quitting if there's unsaved changes, and introduce the
:wq
force quit command - support
~
expansion in the filename - automatically translate a Tab to 4 spaces (thanks @ilmanzo !)
- automatically dump unsaved changes to a swap file, and restore it in case of a crash
bo <filename>
now opens a new/unsaved<filename>
file
v0.2.0
Basic edition features and commands are now available:
- insert characters in insert mode with support for Enter/Backspace
d
deletes a linex
deletes the current charactero
inserts a newline after the current line and switches to insert modeO
inserts a newline before the current line and switches to insert mode
A lot of work went into implementing a Console
trait, both implemented by the Terminal
struct, as well as a MockConsole
one, and passing it around the Editor
, so that we can mock the terminal itself, to unit test the editor.
v0.1.0
At that point, bo
cannot yet edit text at all, meaning it is very much useless. That being said, it can navigate through text really well, which is the first step!