Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/nanotee/nvim-if-lua-compat

An if_lua compatibility layer for Neovim
https://github.com/nanotee/nvim-if-lua-compat

compatibility lua neovim vim

Last synced: about 2 months ago
JSON representation

An if_lua compatibility layer for Neovim

Lists

README

        

# nvim-if-lua-compat

An `if_lua` compatibility layer for Neovim (WIP, needs testing)

## Goals

Maintain some amount of compatibility with the existing Vim interface for Lua (see also: [neovim/neovim#12537](https://github.com/neovim/neovim/issues/12537)).

## Progress

Items annotated with an asterisk `*` are only partially supported.

- [x] * `vim.list()` (actually a Lua table, `luaeval()` just makes a copy and transforms it into a Vim list...)
- [x] `#l`
- [x] `l[k]`
- [x] `l()`
- [x] `table.insert(l, newitem)`
- [x] `table.insert(l, position, newitem)`
- [x] `table.remove(l, position)`
- [x] `l:add(item)`
- [x] `l:insert(item[, pos])`
- [x] * `vim.dict()` (actually a Lua table, `luaeval()` just makes a copy and transforms it into a Vim dict...)
- [x] * `#d` (Only works with Lua 5.2+ or LuaJIT built with 5.2 extensions)
- [x] `d.key` or `d['key']`
- [x] `d()`
- [x] * `vim.blob()` (actually a Lua table)
- [x] * `#b` (Only works with Lua 5.2+ or LuaJIT built with 5.2 extensions)
- [x] `b[k]`
- [x] `b:add(bytes)`
- [x] `vim.funcref()` (exists in Neovim core, but the implementation is different here)
- [x] * `#f` (Only works with Lua 5.2+ or LuaJIT built with 5.2 extensions)
- [x] `f(...)`
- [x] `vim.buffer()`
- [x] `b()`
- [x] * `#b` (Only works with Lua 5.2+ or LuaJIT built with 5.2 extensions)
- [x] `b[k]`
- [x] `b.name`
- [x] `b.fname`
- [x] `b.number`
- [x] `b:insert(newline[, pos])`
- [x] `b:next()`
- [x] `b:previous()`
- [x] `b:isvalid()`
- [x] `vim.window()`
- [x] `w()`
- [x] `w.buffer`
- [x] `w.line` (get and set)
- [x] `w.col` (get and set)
- [x] `w.width` (get and set)
- [x] `w.height` (get and set)
- [x] `w:next()`
- [x] `w:previous()`
- [x] `w:isvalid()`
- [x] `vim.type()`
- [x] `list`
- [x] `dict`
- [x] `blob`
- [x] `funcref`
- [x] `buffer`
- [x] `window`
- [x] `vim.command()` (alias to `vim.api.nvim_command()`)
- [x] * `vim.eval()` (alias to `vim.api.nvim_eval()`, doesn't actually return a `vim.list/dict/blob`)
- [x] `vim.line()` (alias to `vim.api.nvim_get_current_line()`)
- [x] `vim.beep()`
- [x] `vim.open()`
- [x] `vim.call()` (in Neovim core)
- [x] `vim.fn()` (in Neovim core)