First tagged stable release. Captures the state of the plugin after several years of iterative improvements.
Added
- Auto-loading entrypoint
plugin/numb.luaso the plugin works without an explicitrequire('numb').setup()call (#35). centered_peekingoption to center the peeked line in the window.hide_relativenumbersoption to disablerelativenumberwhile peeking.number_onlyoption to peek only when the command line is purely numeric.- Range peeking and relative jump support (
:+5,:-3,:++,:10+5, arithmetic expressions). - Unfolding while peeking and after confirming a jump.
require('numb').disable()to tear down the plugin and clear state.- Headless regression test suite covering option restoration, sequential jumps, out-of-bounds clamping, relative motions, multi-window state, and fold restoration.
- GitHub Actions CI running Stylua, a load smoke test, and the regression suite on every push and pull request to
master. - Type annotations (LuaCATS) for the public API and internal state.
Changed
- Module-level state encapsulated into a
NumbStateclass for clearer ownership and easier testing. - Window option handling migrated to
nvim_get_option_value/nvim_set_option_value. - Cursor and view restoration made more deterministic so confirmed and aborted peeks leave the window in the expected state.
Fixed
- Compatibility with stable Neovim after API changes.
- Negative-range commands no longer raise errors when the relative target underflows the buffer; targets are clamped to the buffer bounds.
- Relative jump origin stays stable when typing additional digits.
- Unnecessary redraw calls removed to reduce flicker.
Security
- Replaced the previous
load()-based arithmetic evaluator with a manual parser to eliminate code-execution risk from malformed input.
See CHANGELOG.md for the full history and the upcoming [Unreleased] entries.