mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-02 22:40:06 +08:00
58 lines
2.0 KiB
Lua
58 lines
2.0 KiB
Lua
local M = {}
|
|
|
|
--- @class LuaDevOptions
|
|
M.defaults = {
|
|
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
|
|
---@type boolean|string[]
|
|
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 .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,
|
|
debug = false,
|
|
}
|
|
|
|
--- @type LuaDevOptions
|
|
M.options = {}
|
|
|
|
function M.setup(options)
|
|
M.options = vim.tbl_deep_extend("force", {}, M.defaults, options or {})
|
|
end
|
|
|
|
function M.types()
|
|
return M.root("/types/" .. M.version())
|
|
end
|
|
|
|
---@param root? string
|
|
function M.root(root)
|
|
local f = debug.getinfo(1, "S").source:sub(2)
|
|
return vim.loop.fs_realpath(vim.fn.fnamemodify(f, ":h:h:h") .. "/" .. (root or ""))
|
|
end
|
|
|
|
---@return "nightly" | "stable"
|
|
function M.version()
|
|
return vim.version().prerelease and "nightly" or "stable"
|
|
end
|
|
|
|
---@return LuaDevOptions
|
|
function M.merge(options)
|
|
return vim.tbl_deep_extend("force", {}, M.options, options or {})
|
|
end
|
|
|
|
return M
|