Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nvim-neorocks/nurr
A repository for hosting auto-generated Neovim plugins and tree-sitter parsers for Luarocks.
https://github.com/nvim-neorocks/nurr
luarocks neovim plugin-repo
Last synced: 2 months ago
JSON representation
A repository for hosting auto-generated Neovim plugins and tree-sitter parsers for Luarocks.
- Host: GitHub
- URL: https://github.com/nvim-neorocks/nurr
- Owner: nvim-neorocks
- License: mit
- Created: 2024-03-01T19:42:19.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-10-29T12:12:56.000Z (2 months ago)
- Last Synced: 2024-10-29T14:40:04.457Z (2 months ago)
- Topics: luarocks, neovim, plugin-repo
- Language: Lua
- Homepage:
- Size: 1.35 MB
- Stars: 30
- Watchers: 5
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Neovim User Rock Repository (NURR)
The NURR hosts and automatically packages Neovim Luarocks releases for many plugins
and tree-sitter parsers whose developers do not want to maintain a Luarocks CI workflow.This repository contains a CI which runs periodically, enumerating a set of curated Neovim plugins
and publishing them to `luarocks.org`.## How it works
Plugins are published using the [luarocks-tag-release](https://github.com/nvim-neorocks/luarocks-tag-release)
action.### Plugins
The plugin metadata are stored in a [plugins.json](./plugins.json) file, which
is currently updated manually.
A [chunk workflow](./.github/workflows/chunk.yml) reads the plugins.json file and
chunks the plugins into sets of 256 (the max number of outputs per job).
Each chunk is dispatched to an update workflow,
which uses the chunk it receives as the input for a matrix build.> [!NOTE]
>
> Neovim plugins are published every 4 hours.> [!IMPORTANT]
>
> When adding a plugin that claims it depends on nvim-treesitter,
> check if it actually does. Many plugins only depend on the parsers.
> If it does, we recommend:
>
> - Adding `nvim-treesitter-legacy-api` to the dependencies
> (this does not clash with the luarocks tree-sitter parsers' queries).
> - Opening a PR or an issue to use Neovim's core API instead.#### Schema
- `name`: owner/repo (GitHub)
- `shorthand`: The name of the plugin (will be the lua rock name)
- `dependencies`: Plugin dependencies, a list of luarocks plugins
- `summary`: Short description of the plugin
- `license`: The license SPDX
- `extra_directories`: (optional) Extra directories to copy, separated by `\n`,
in addition to the standard Neovim runtime directories, which are auto-detected.### Tree-sitter parsers [WIP]
- One workflow periodically generates the [tree-sitter-parsers.json](./tree-sitter-parsers.json)
file, using nvim-treesitter as a source.
- Another workflow uses that file as a matrix input, to generate
rockspecs (that use [`luarocks-build-tree-sitter-parser`](https://github.com/nvim-neorocks/luarocks-build-treesitter-parser))
and publishes them to luarocks.org.> [!NOTE]
>
> Tree-sitter parsers are published every 7 hours.> [!IMPORTANT]
>
> Any tree-sitter parser rockspecs that cannot be built and installed by the workflow> are not uploaded to luarocks.org.