neovim-plugin-development

Guide Lua-based Neovim plugin creation with lazy.nvim integration and testing workflows.

9|Updated Feb 15, 2026
One-click install
npx skills add https://github.com/gwenwindflower/dotfiles --skill neovim-plugin-development-gwenwindflower
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: neovim-plugin-development
Source: https://github.com/gwenwindflower/dotfiles/tree/main/dot_agents/exact_skills/neovim-plugin-development
Command: npx skills add https://github.com/gwenwindflower/dotfiles --skill neovim-plugin-development-gwenwindflower

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Neovim plugin development often requires tight coupling with Lua APIs, a solid project structure, and reliable testing; this Skill provides a guided approach to building Lua-based Neovim plugins that integrate with lazy.nvim, covering API usage, plugin layout, health checks, and distribution considerations.

Core Features & Use Cases

  • Vim API and Lua-based plugin logic: leverage vim.api, vim.fn, vim.o/vim.bo for robust plugin behavior.
  • Plugin structure and distribution: organize code in lua/, plugin/, and doc/ with proper lazy.nvim integration.
  • Testing and quality: incorporate busted-based tests, health checks, and a clean development workflow for maintainable plugins.

Quick Start

Create a Lua-based Neovim plugin skeleton, wire it into lazy.nvim with a setup() function, and begin implementing internal APIs, commands, and tests.

Frequently Asked Questions about neovim-plugin-development

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a Neovim plugin in Lua for lazy.nvim?

Structure a Neovim plugin by organizing code in lua/, plugin/, and doc/ directories, then wire it into lazy.nvim using a setup() function to ensure proper loading and distribution.

What's the best way to test Neovim plugins built with Lua?

The best way to test Neovim plugins is by incorporating busted-based tests alongside health checks, ensuring a clean development workflow for maintainable and reliable Lua plugin behavior.

How do I use vim.api and vim.fn when developing Neovim plugin logic?

Use vim.api, vim.fn, and vim.o/vim.bo within your Lua files to leverage Neovim's internal APIs, enabling robust plugin behavior and direct interaction with editor state.

Can I add floating windows and user commands to a lazy.nvim plugin?

Yes, you can add floating windows, user commands, and autocommands by utilizing the vim.api within your Lua plugin logic to extend Neovim functionality beyond basic text operations.

Does a lazy.nvim compatible plugin require health checks?

While not strictly required, incorporating health checks using Neovim's built-in system is recommended for diagnosing plugin issues and ensuring a clean, maintainable development workflow.

Why do I need a SKILL.md file for Neovim plugin development?

A SKILL.md file with name and description frontmatter is required to define the plugin's metadata, which is loaded into context at activation to guide the generation of plugin structure and tests.