Skip to content

💻 Dev setup for init.lua and plugin development with full signature help, docs and completion for the nvim lua API.

Notifications You must be signed in to change notification settings

muskanmahajan37/lua-dev.nvim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💻 lua-dev

Dev setup for init.lua and plugin development with full signature help, docs and completion for the nvim lua API.

image

image

✨ Features

  • EmmyLua library for the nvim lua API for:
    • completion
    • hover docs
    • function signatures
  • properly configures the require path with lua/?.lua and lua/?/init.lua.
  • adds all plugins in opt and start to the workspace so you get completion for all installed plugins
  • properly configure the vim runtime

⚡️ Requirements

📦 Installation

Install the plugin with your preferred package manager:

use "folke/lua-dev.nvim"
Plug 'folke/lua-dev.nvim'

⚙️ Configuration

lua-dev comes with the following defaults:

{
  library = {
    vimruntime = true, -- runtime path
    vimconfig = true, -- typically ~/.config/nvim
    plugins = true, -- installed opt or start plugins in packpath
    types = true, -- full signature, docs and completion of vim.api, vim.treesitter, vim.lsp and others
  },
}

🚀 Setup

local luadev = require("lua-dev").setup({
 -- add any options here, or leave empty to use the default settings
})

local lspconfig = require('lspconfig')
lspconfig.sumneko_lua.setup(luadev)

❓ How?

Neovim includes a script to generated the nvim docs. That script also creates message pack files containing all the API metadata in a structured way. Unfortunately these files are not packaged in the releases.

Using the message pack files, I converted all the API data to EmmyLua annotations and make them available for the Sumneko LSP as a workspace library.

🗒️ Limitations

  • vim.fn functions are currently not part of the EmmyLua library since no message pack files are generated.
  • function return types are always any, since that information is missing

About

💻 Dev setup for init.lua and plugin development with full signature help, docs and completion for the nvim lua API.

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 100.0%