Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/willothy/nvim-utils
Utilities and bindings for writing Neovim plugins in Rust
https://github.com/willothy/nvim-utils
lua-bindings neovim neovim-plugins rust
Last synced: 4 days ago
JSON representation
Utilities and bindings for writing Neovim plugins in Rust
- Host: GitHub
- URL: https://github.com/willothy/nvim-utils
- Owner: willothy
- License: mit
- Archived: true
- Created: 2023-02-21T09:39:35.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-07-13T08:24:47.000Z (over 1 year ago)
- Last Synced: 2024-10-16T21:46:35.723Z (18 days ago)
- Topics: lua-bindings, neovim, neovim-plugins, rust
- Language: Rust
- Homepage: https://crates.io/crates/nvim-utils
- Size: 60.5 KB
- Stars: 78
- Watchers: 4
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Nvim-Utils: Utilities for writing Neovim plugins in Rust
[![DeepSource](https://deepsource.io/gh/willothy/nvim-utils.svg/?label=active+issues&show_trend=true&token=Z6ZpietODcwGH8IaieqJ7Z60)](https://deepsource.io/gh/willothy/nvim-utils/?ref=repository-badge)
[![DeepSource](https://deepsource.io/gh/willothy/nvim-utils.svg/?label=resolved+issues&show_trend=true&token=Z6ZpietODcwGH8IaieqJ7Z60)](https://deepsource.io/gh/willothy/nvim-utils/?ref=repository-badge)Interacting with Neovim's lua api in Rust can be a bit of a pain. `nvim-utils` aims to make it easier and quicker to develop Neovim plugins in Rust by removing as much of the required boilerplate as possible, and implementing bindings for the `vim.*` lua api.
> **Warning**
> This library is no longer maintained.
> For a more polished API, check out [nvim-oxi](https://github.com/noib3/nvim-oxi).## Current plans
- Integrate with the Luajit and Neovim C APIs directly
- Minimize dependencies## Installation
```sh
cargo add nvim-utils
```## Features
`nvim-utils` provides utilities for:
- Declaratively building lua modules using `mlua`
- Interacting with Neovim's lua api
- Logging using `vim.notify`
- Accessing common lua builtin functions like `require` and `print`
- And more to come!## Documentation
Check out the examples for a simple example plugin, or my plugins [moveline](https://github.com/willothy/moveline.nvim) and [blam](https://github.com/willothy/blam.nvim) for slightly more complex ones.
Open [docs.rs/nvim-utils](https://docs.rs/nvim-utils) for the full documentation.
## Plugins using nvim-utils
If you build a plugin using `nvim-utils`, submit a PR or let me know and I'll list it here!
- [willothy/moveline.nvim](https://github.com/willothy/moveline.nvim): Easily move lines up and down