diff options
-rw-r--r-- | lua/plugins/lsp.lua | 52 |
1 files changed, 31 insertions, 21 deletions
diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 9d0da3a..b581e9b 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -4,33 +4,43 @@ return { event = { 'BufReadPre', 'BufNewFile' }, config = function() local lspconfig = require('lspconfig') - lspconfig.lua_ls.setup { - settings = { - Lua = { + 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', - }, - diagnostics = { - -- Get the language server to recognize the `vim` global - globals = { - 'vim', - 'require' - }, + version = 'LuaJIT' }, + -- Make the server aware of Neovim runtime files workspace = { - -- Make the server aware of Neovim runtime files - library = vim.api.nvim_get_runtime_file("", true), - }, - -- Do not send telemetry data containing a randomized but unique identifier - telemetry = { - enable = false, - }, - }, - }, + 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 = {} + } + }) + lspconfig.lua_ls.setup {} + lspconfig.clangd.setup { + autostart = false, } - lspconfig.clangd.setup {} -- Use LspAttach autocommand to only map the following keys -- after the language server attaches to the current buffer |