429ce94da1
so we dont have to run vim.version() function in many places of the config cuz we will be making nvchad 0.8 compatible too bit by bit
75 lines
1.8 KiB
Lua
75 lines
1.8 KiB
Lua
local present, lspconfig = pcall(require, "lspconfig")
|
|
|
|
if not present then
|
|
return
|
|
end
|
|
|
|
require("base46").load_highlight "lsp"
|
|
require "nvchad_ui.lsp"
|
|
|
|
local M = {}
|
|
local utils = require "core.utils"
|
|
|
|
-- export on_attach & capabilities for custom lspconfigs
|
|
|
|
M.on_attach = function(client, bufnr)
|
|
if vim.g.vim_version > 7 then
|
|
-- nightly
|
|
client.server_capabilities.documentFormattingProvider = false
|
|
client.server_capabilities.documentRangeFormattingProvider = false
|
|
else
|
|
-- stable
|
|
client.resolved_capabilities.document_formatting = false
|
|
client.resolved_capabilities.document_range_formatting = false
|
|
end
|
|
|
|
local lsp_mappings = utils.load_config().mappings.lspconfig
|
|
utils.load_mappings({ lsp_mappings }, { buffer = bufnr })
|
|
|
|
if client.server_capabilities.signatureHelpProvider then
|
|
require("nvchad_ui.signature").setup(client)
|
|
end
|
|
end
|
|
|
|
M.capabilities = vim.lsp.protocol.make_client_capabilities()
|
|
|
|
M.capabilities.textDocument.completion.completionItem = {
|
|
documentationFormat = { "markdown", "plaintext" },
|
|
snippetSupport = true,
|
|
preselectSupport = true,
|
|
insertReplaceSupport = true,
|
|
labelDetailsSupport = true,
|
|
deprecatedSupport = true,
|
|
commitCharactersSupport = true,
|
|
tagSupport = { valueSet = { 1 } },
|
|
resolveSupport = {
|
|
properties = {
|
|
"documentation",
|
|
"detail",
|
|
"additionalTextEdits",
|
|
},
|
|
},
|
|
}
|
|
|
|
lspconfig.sumneko_lua.setup {
|
|
on_attach = M.on_attach,
|
|
capabilities = M.capabilities,
|
|
|
|
settings = {
|
|
Lua = {
|
|
diagnostics = {
|
|
globals = { "vim" },
|
|
},
|
|
workspace = {
|
|
library = {
|
|
[vim.fn.expand "$VIMRUNTIME/lua"] = true,
|
|
[vim.fn.expand "$VIMRUNTIME/lua/vim/lsp"] = true,
|
|
},
|
|
maxPreload = 100000,
|
|
preloadFileSize = 10000,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
return M
|