Releases: VoxelPrismatic/rabbit.nvim
v5.0.0b3 - Lazuli
⚞NEW⚟
- Fuzzy find files!
- I can now uninstall Telescope with this release
Note
This is a beta build. Rabbit is largely stable (meaning no issues in my daily use), but the API is poorly documented and subject to change. Please use tagged releases to ensure stability.
Internals
- New
SET.lookupfn allowing for easy field lookup
Hotfixes
- Fzr now finds the shortest fuzzy match
- Fzr now automatically kills the find command after 250ms
- Rg is now killed after 250ms
Fixed
- Fields with content too long would break highlighting and selection
- Field selection no longer looks like crap
- Forage now honors the
grepoption - The parent action now works in Ripgrep and Fzr
- The
1-9keys work again
Known issues
- The window stays open when no longer focused, and clicking back on it causes Rabbit to scream. I do not know how to reproduce this bug.
To do
See projects: https://github.com/users/VoxelPrismatic/projects/2/
v5.0.0b2 - Forage
⚞NEW⚟
- Officially licensed under MIT
- Ripgrep works!
- Search persists across many Rabbit spawns
- Pass flags directly to ripgrep
- Search immediately after selecting, as if you typed
/pattern
- Carrot
- New instructions when migrating away from ThePrimeagen's Harpoon
- Visual has been implemented
- All pasted collections are deep-copied
- Reduce chances of ID collisions
- Faster & more accurate syllable wrapping
- Mouse support!
- Double-click on an entry to activate it
Note
This is a beta build. Rabbit is largely stable (meaning no issues in my daily use), but the API is poorly documented and subject to change. Please use tagged releases to ensure stability.
Internals
- Search API
rabbit.types.reversehighlight group- New
deferoption- Default defer duration in ms when making many calls
- If your PC is fast, keep it low
- File entries may now have custom labels
- Actions can now be renamed in the legend
- Eg, the
ripgrepsearch bar has a rename fn, but it makes no sense to call it "rename," so it's now called "edit"
- Eg, the
- Menus can now have custom border colors
- Menus can now display additional messages
- Menus now display an 'Ok' function by default (when there are no options available), allowing for prompts
- Eg, warning the user that
rgcannot be called, but don't do anything about it
- Eg, warning the user that
- New
redrawmessage - New
NVIM.nsandNVIM.ftAPI, caching calls tovim.api.nvim_create_namespaceandvim.filetype.match({ filename = name })respectively - New
UI.redraw_entryshorthand - New UI callback shorthands
bind_callback(action, entry)wrap_callback(response)
- Rabbit:Trail now has a built-in function to bind to the very handy buffers table
- You may now chain multiple responses together
- New global unique name generator
- Highlight wrapping now honors spaces
Fixed
- Hovering over files now passes the jump highlights
- Redrawing an entry now actually updates the entry in
UI._entries - Previews no longer attempt to move the cursor out of bounds
- Renaming entries now asks for the specific entry to rename, falling back to the current line if the entry was not provided
- Speeds up moving between lines by 10x
- Renaming no longer attempts to place an extmark if both the old name and the new name are empty strings
- Carrot
- No longer hangs on cyclical collection referencing
- Actually scopes properly based on config
- Renames the first collection when inserting an entry while hovering over 'up'
- Could not paste/insert on empty page
- Creating a collection no longer moves you to the top
- Properly target real save data
- Forage
- Oxide no longer moves to the top when you delete an entry
- Oxide now properly saves
- Oxide no longer crashes when you delete a file during the session
- Other erroneous sort issues
- New stack API now deepcopies objects
Known issues
- The window stays open when no longer focused, and clicking back on it causes Rabbit to scream. I do not know how to reproduce this bug.
To do
See projects: https://github.com/users/VoxelPrismatic/projects/2/
v5.0.0b1 - New Dawn
⚞NEW⚟
- Forage plugin
- Oxide sorting algorithm
- Carrot
- You may now rename files
- Renamed files have a filetype icon
Note
This is a beta build. Rabbit is largely stable (meaning no issues in my daily use), but the API is poorly documented and subject to change.
If you are coming from v4.x.x, please read the additional changes in the following releases. This is a complete rewrite, so your config will not work.
Warning
The default branch has been changed in this version.
If you prefer the old version, either add a tag v4.* or set branch = "master" in Lazy. Please keep in mind that the legacy version is deprecated and will no longer feature any updates.
Internals
- Optimized the highlighter
- New wrappers around
vim.uv.fs_statMEM.stat- Resolve symlinksMEM.is_type- Make sure a file is a specific typeMEM.existsshorthand forMEM.stat(...) ~= nil
Fixed
vim.uv.fs_statcalls now resolve symlinks- Renaming/recoloring an entry no longer increments the index
- Carrot
- Renaming a collection, then cancelling a second rename no longer shows the original name
- Rabbit no longer crashes if an entry doesn't have a
parentaction - Removed erroneous print in
term/stack/autocmd.lua - The SET api now has proper typing
- Apparently
table<T>isn't valid but{ [integer]: T }is
- Apparently
To do
See projects: https://github.com/users/VoxelPrismatic/projects/2/
v5.0.0a6
⚞NEW⚟
- You may now set colors in Carrot
- New Index listing
- Displays all enabled plugins and their synopsis
- New default
- Previews
- Binaries can now be previewed
- Large files will not be previewed
- Message is displayed if file is empty
- Target line/column is now highlighted
- Preview is now async
- Rename
- You may now hit
<Esc>to cancel rename instead of always applying
- You may now hit
- Colors can now be functions
Internals
- Reworked some class definitions
- More assertions instead of if/error checks
- Synopsis API in entry
- Refactored workspace context API
Fixed
- Actually adhere to
plugin = falsein config - Renaming an entry no longer increments index
Other news
- More documentation
- Updated README
Warning
This is an alpha build. Building plugins is highly discouraged at this time.
To do
See projects: https://github.com/users/VoxelPrismatic/projects/2/
v5.0.0a5
⚞NEW⚟
- Visual mode!
- Trail
- You may now cut, yank, & paste certain buffers to anywhere you like
- Config documented!
- Trail is now in beta!!!
- You may now sort windows by display name
- Kinda useless for now, but workspace plugin coming (eventually)
- When navigating from the window selection screen, the window's most recent buffer will be selected by default, instead of the second-most recent buffer
- When the BufAdd event is fired, the associated buffer is added to the global listing
- No longer relies on BufEnter
- You can see what buffers were opened & modified after Lsp Rename
- Legend
- You may now hide certain actions. Close and Select are hidden by default.
- Renamed
HarpoontoCarrot- More rabbit-themed
- Reduces confusion with ThePrimeagen's Harpoon plugin
- Carrot
- New option to scope by window, buffer, or never.
- Removes previous by_buffer option
- Less spaghetti
- New option to scope by window, buffer, or never.
Internals
- Consolidating types into the files they're used in
- More workspace API shorthands
get_lines()&set_lines(...)set_extmark(...)&clear_extmarks(...)get_cur()&move_cur(...)listen(...)&unlisten(...)bind(...),bound(...)&unbind(...)TERM.feed(...)focus()
- You may now send an empty message to keep Rabbit open
- Previews now cache binary preview buffers
- Some happy-path stuff to reduce obscene indentation levels
Fixed
- The current window no longer closes when closing the file currently being previewed
- Carrot
- Improper scoping (probably unrealized but it can no longer happen)
Warning
This is an alpha build. Building plugins is highly discouraged at this time.
To do
See projects: https://github.com/users/VoxelPrismatic/projects/2/
v5.0.0a4
⚞NEW⚟
- Harpoon can now delete things!
- Also: Removed the unnecessary conflicts options
- You don't really need duplicate collections
- Automatically cancels the insert operation if you enter the collection you just moved
- Trying to deep-copy with the new data format would be absolute hell
- Also: Removed the unnecessary conflicts options
- New border config
- This requires more config from the user, but is substantially easier to maintain
- New menu API
- Create selections with ease!
- You may now close buffers in Trail
- Closing an open buffer will move you to the last opened buffer
- Closing an unsaved buffer will prompt you to save
- You may now preview closed buffers
- Binaries cannot be previewed
Internals
- Enhanced
Rabbit.UI.Workspace- Added a
set_linesmethod - Set lines & highlights in the buffer quickly - Added a
move_curmethod - Move the cursor quickly - Added
bind,unbindandlegendmethods - Bind a list of keys to a callback quickly - Added
focus- Shorcut for vim.api.nvim_set_current_win
- Added a
- Refactored the Preview handler
- We now cache the generated border given the window size and window ID
- Overall 1000x efficiency
- Refactored the relative path generator
- More efficient
- Caches results
- Overall 100x efficiency
Fixed
- Some more crashing with preview
- In Harpoon, when adding to a nested collection, it would actually add below the cursor position
- This also cleared names when inserting collections
- Crashing with LSP signs
Warning
This is an alpha build. Building plugins is highly discouraged at this time.
To do
See #31
v5.0.0a3
⚞NEW⚟
- Harpoon plugin is under way!
- New Insert action
- Insert the last opened buffer or last deleted entry
- New Collect action
- Create a collection to organize your workspace
- New Insert action
- Opened buffers now display LSP info
- Customize the icons and colors in config
- Documentation will be available upon beta release
- Opened buffers now also show modified/read only status
- Customize the icons and colors in config
- Documentation will be available upon beta release
- Option to set plugin as default
- Apparently, key ordering is not guaranteed
- Legend now marquees if it's too long
- Rabbit now actually displays empty listing messages
- Term.Wrap now breaks by syllable instead of by word
Internals
- Moved
empty_msgtoempty.msgand created default actions for empty message
Fixed
- Not opening closed buffers properly
- Apparently vim
:eignores spaces by default
- Apparently vim
- Global config variable
- Previews no longer crash if the window doesn't exist
- Previews no longer crash if the buffer doesn't exist
Warning
This is an alpha build. Building plugins is highly discouraged at this time.
Missing
- No
Oxideplugin - You may not delete closed buffers or windows at this time
v5.0.0a2
⚞NEW⚟
- New rename action
- This imitates the insert mode in Oil, allowing you to easily rename multiple things at the same time
- When in insert mode, if you move up or down into an entry that doesn't support renaming, you will be kicked out automatically
- Actually apply plugin environment
- Less need for the plugin to probe the CTX module
- New Parent action
- Quickly jump to the parent folder or window
- Rabbit closes gracefully when the buffer is no longer focused
- Rabbit more gracefully resizes (see fixed)
Internals
- CTX module now organizes workspaces by children instead of by parent
- You can add multiple children with ease, now
- CTX module has a new spawn() function, limiting how often you need to call nvim_open_win and nvim_create_buf
- CTX.spawn(...) now pauses closing Rabbit automatically, instead of manually tracking the new buffer ID
Fixed
- Trail now ignores all events when Rabbit is open
- Previewing buffers no longer breaks the buffer order
- Weird jumping behavior when moving cursor
- Less crashing overall
Warning
This is an alpha build. Building plugins is highly discouraged at this time.
Missing
- No
Harpoonplugin - No
Oxideplugin - You may not delete closed buffers or windows at this time
v5.0.0a1
⚞NEW⚟
- The
HistoryandReopenplugins have been merged intoTrailTrailalso allows you to select which window to open- New preview API which shows which buffer you're about to open and where you're about to open it
- New custom borders API
- New custom highlights API
Breaking
Everything, actually. It's rewritten from scratch. I highly suggest you stick to the default config for now.
Warning
This is an alpha build. Building plugins is highly discouraged at this time.
Missing
- No
Harpoonplugin - No
Oxideplugin - You may not delete closed buffers or windows at this time
v4.3.1 - Pistachio
⚞NEW⚟
- You can now delete entries from Rabbit:Reopen
- Generally useless, but it matches the other plugins
Bug Fixes
- Rabbit:Reopen no longer lists directories
- Rabbit:Oxide no longer lists directories
- Rabbit no longer hangs when opening Reopen immediately after launching Neovim
- Apparently you shouldn't use the
table_valuesAPI - Doesn't much matter now because I append files after I make sure they're not directories
- Apparently you shouldn't use the
- Rabbit no longer hangs when opening Oxide immediately after launching Neovim
- This is unexplained, but I suspect it has something to do with listing directories
all changes: b502cbc...3a4ce04