1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-23 10:40:03 +08:00
SpaceVim/bundle/neodev.nvim/doc/neodev.nvim.txt

167 lines
5.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

*neodev.nvim.txt* For Neovim >= 0.8.0 Last change: 2023 May 30
==============================================================================
Table of Contents *neodev.nvim-table-of-contents*
1. neodev.nvim |neodev.nvim-neodev.nvim|
- Features |neodev.nvim-neodev.nvim-features|
- Requirements |neodev.nvim-neodev.nvim-requirements|
- Installation |neodev.nvim-neodev.nvim-installation|
- Configuration |neodev.nvim-neodev.nvim-configuration|
- Setup |neodev.nvim-neodev.nvim-setup|
==============================================================================
1. neodev.nvim *neodev.nvim-neodev.nvim*
Neovim setup for init.lua and plugin development with full signature help, docs
and completion for the nvim lua API.
FEATURES *neodev.nvim-neodev.nvim-features*
- Automatically configures **lua-language-server** for your **Neovim** config, **Neovim** runtime and plugin
directories
- Annotations <https://github.com/LuaLS/lua-language-server/wiki/Annotations> for completion, hover and signatures of:
- Vim functions
- Neovim api functions
- `vim.opt`
- vim.loop <https://github.com/luvit/luv>
- properly configures the `require` path.
- adds all plugins in `opt` and `start` to the workspace so you get completion
for all installed plugins
- properly configure the vim runtime
REQUIREMENTS *neodev.nvim-neodev.nvim-requirements*
- Neovim >= 0.7.0
- completion plugin like nvim-cmp <https://github.com/hrsh7th/nvim-cmp>
INSTALLATION *neodev.nvim-neodev.nvim-installation*
Install the plugin with your preferred package manager:
LAZY.NVIM ~
>lua
{ "folke/neodev.nvim", opts = {} }
<
VIM-PLUG ~
>vim
Plug 'folke/neodev.nvim'
<
CONFIGURATION *neodev.nvim-neodev.nvim-configuration*
**neodev** comes with the following defaults:
>lua
{
library = {
enabled = true, -- when not enabled, neodev will not change any settings to the LSP server
-- these settings will be used for your Neovim config directory
runtime = true, -- runtime path
types = true, -- full signature, docs and completion of vim.api, vim.treesitter, vim.lsp and others
plugins = true, -- installed opt or start plugins in packpath
-- you can also specify the list of plugins to make available as a workspace library
-- plugins = { "nvim-treesitter", "plenary.nvim", "telescope.nvim" },
},
setup_jsonls = true, -- configures jsonls to provide completion for project specific .luarc.json files
-- for your Neovim config directory, the config.library settings will be used as is
-- for plugin directories (root_dirs having a /lua directory), config.library.plugins will be disabled
-- for any other directory, config.library.enabled will be set to false
override = function(root_dir, options) end,
-- With lspconfig, Neodev will automatically setup your lua-language-server
-- If you disable this, then you have to set {before_init=require("neodev.lsp").before_init}
-- in your lsp start options
lspconfig = true,
-- much faster, but needs a recent built of lua-language-server
-- needs lua-language-server >= 3.6.0
pathStrict = true,
}
<
SETUP *neodev.nvim-neodev.nvim-setup*
**neodev** will **ONLY** change the **lua_ls** settings for:
- your Neovim config directory
- your Neovim runtime directory
- any plugin directory (this is an lsp root_dir that contains a `/lua`
directory)
For any other `root_dir`, **neodev** will **NOT** change any settings.
**TIP** with neoconf.nvim <https://github.com/folke/neoconf.nvim>, you can
easily set project local **Neodev** settings. See the example .neoconf.json
<https://github.com/folke/neodev.nvim/blob/main/.neoconf.json> file in this
repository
>lua
-- IMPORTANT: make sure to setup neodev BEFORE lspconfig
require("neodev").setup({
-- add any options here, or leave empty to use the default settings
})
-- then setup your lsp server as usual
local lspconfig = require('lspconfig')
-- example to setup lua_ls and enable call snippets
lspconfig.lua_ls.setup({
settings = {
Lua = {
completion = {
callSnippet = "Replace"
}
}
}
})
<
Example for setting up **neodev** that overrides the settings for `/etc/nixos` ~
>lua
-- You can override the default detection using the override function
-- EXAMPLE: If you want a certain directory to be configured differently, you can override its settings
require("neodev").setup({
override = function(root_dir, library)
if require("neodev.util").has_file(root_dir, "/etc/nixos") then
library.enabled = true
library.plugins = true
end
end,
})
<
Its possible to setup Neodev without lspconfig, by configuring the
`before_init` of the options passed to `vim.lsp.start`.
Example without lspconfig ~
>lua
-- dont run neodev.setup
vim.lsp.start({
name = "lua-language-server",
cmd = { "lua-language-server" },
before_init = require("neodev.lsp").before_init,
root_dir = vim.fn.getcwd(),
settings = { Lua = {} },
})
<
==============================================================================
2. Links *neodev.nvim-links*
1. *image*: https://user-images.githubusercontent.com/292349/201495543-ff532160-c8bd-4651-a16f-4fb682c9b945.png
Generated by panvimdoc <https://github.com/kdheepak/panvimdoc>
vim:tw=78:ts=8:noet:ft=help:norl: