Added
- Tier 1
vim.apiexpansion — 27 newnvim_*functions (43 total), unlocking the mini.nvim plugin ecosystem. New functions organized in 4 waves:- Cursor + line + marks:
nvim_get_current_win,nvim_get_current_line,nvim_set_current_line,nvim_win_get_cursor,nvim_win_set_cursor,nvim_buf_get_mark,nvim_buf_set_mark,nvim_buf_del_mark - Global keymaps + key injection:
nvim_set_keymap,nvim_del_keymap,nvim_get_keymap,nvim_replace_termcodes,nvim_feedkeys - Commands + stubs + options:
nvim_command,nvim_del_user_command,nvim_win_get_buf,nvim_get_current_tabpage,nvim_buf_get_option,nvim_buf_set_option,nvim_get_option,nvim_set_option - Variables + messaging + text:
nvim_buf_get_var,nvim_buf_set_var,nvim_echo,nvim_buf_set_text - Plugin:
src/lua/api.ts(27 function registrations,requireWindowZerovalidator, updated metatable) - Plugin:
src/lua/loader.ts(8 new callbacks:getCmAdapter,getMarkPos,setMark,delMark,getLine,setLine,replaceRange)
- Cursor + line + marks:
Fixed
- Table-nav
Tab/Shift+Tabstops at row boundaries — pressingTabat the last cell of a row now wraps to the first cell of the next row, andShift+Tabat the first cell wraps to the last cell of the previous row. Matches Obsidian's native table Tab behavior. At the absolute first/last cell of the table, Tab/Shift+Tab stay in place. Thenavigate()method gains awrapparameter;h/lkeys retain their non-wrapping behavior. (#158)- Plugin:
src/vim/table-nav-controller.ts(wrapping logic innavigate(), forwardedwrapparameter in actions lambda and cell-edit scope) - Plugin:
src/vim/table-nav-keymap.ts(wrapparameter inTableNavActionsinterface, Tab handler passeswrap=true)
- Plugin:
Tests
- 29 new unit tests in
test/unit/lua/api.test.tsfor all newnvim_*functions (92 total) - 4 regression tests in
test/specs/table-nav-mode.e2e.tsfor Tab/Shift+Tab row wrapping (#158)
Documentation
CHANGELOG.mdAGENTS.md: updatedvim.apifunction count to 43 with expanded category listCONTRIBUTING.md: updatedsrc/lua/api.tsdescription and buffer/autocmd/highlight file descriptionsKNOWN_LIMITATIONS.md: 6 new known limitations for Lua API (character offsets, deprecated options, feedkeys flags, echo, handles, replace_termcodes)README.md: updatedvim.api.*descriptiondocs/configuration/lua-config.md: full API reference tables for all new functionsdocs/features/tables.md: updated Tab/Shift+Tab description to mention row wrappingdocs/reference/keybindings.md: updated Tab description to mention row wrapping
Full Changelog: 0.137.1...0.138.0