summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/ache/plugins/lsp/mason-lspconf.lua49
1 files changed, 49 insertions, 0 deletions
diff --git a/lua/ache/plugins/lsp/mason-lspconf.lua b/lua/ache/plugins/lsp/mason-lspconf.lua
index df242e6..1be4b4c 100644
--- a/lua/ache/plugins/lsp/mason-lspconf.lua
+++ b/lua/ache/plugins/lsp/mason-lspconf.lua
@@ -20,6 +20,55 @@ return {
local lspconfig = require("lspconfig")
local capabilities = require("cmp_nvim_lsp").default_capabilities()
+ vim.lsp.config("lua_ls", {
+ on_init = function(client)
+ if client.workspace_folders then
+ local path = client.workspace_folders[1].name
+ if
+ path ~= vim.fn.stdpath("config")
+ and (vim.uv.fs_stat(path .. "/.luarc.json") or vim.uv.fs_stat(path .. "/.luarc.jsonc"))
+ then
+ return
+ end
+ end
+
+ client.config.settings.Lua = vim.tbl_deep_extend("force", client.config.settings.Lua, {
+ runtime = {
+ -- Tell the language server which version of Lua you're using (most
+ -- likely LuaJIT in the case of Neovim)
+ version = "LuaJIT",
+ -- Tell the language server how to find Lua modules same way as Neovim
+ -- (see `:h lua-module-load`)
+ path = {
+ "lua/?.lua",
+ "lua/?/init.lua",
+ },
+ },
+ -- Make the server aware of Neovim runtime files
+ workspace = {
+ checkThirdParty = false,
+ library = {
+ vim.env.VIMRUNTIME,
+ -- Depending on the usage, you might want to add additional paths
+ -- here.
+ -- '${3rd}/luv/library'
+ -- '${3rd}/busted/library'
+ },
+ -- Or pull in all of 'runtimepath'.
+ -- NOTE: this is a lot slower and will cause issues when working on
+ -- your own configuration.
+ -- See https://github.com/neovim/nvim-lspconfig/issues/3189
+ -- library = {
+ -- vim.api.nvim_get_runtime_file('', true),
+ -- }
+ },
+ })
+ end,
+ settings = {
+ Lua = {},
+ },
+ })
+
mason_lspconfig.setup({
ensure_installed = {
"lua_ls",