pojokcodeid.nvim-lazy/lua/user/lsp/mason.lua

84 lines
1.9 KiB
Lua
Raw Normal View History

2023-01-15 00:17:41 +07:00
local servers = {
"sumneko_lua",
"cssls",
"html",
"tsserver",
"pyright",
"jsonls",
"emmet_ls",
}
2023-02-25 17:44:22 +07:00
local function idxOf(array, value)
for i, v in ipairs(array) do
if v == value then
return i
end
end
return nil
end
local data_exists, custom_lsp = pcall(require, "core.config")
2023-02-12 15:10:57 +07:00
if data_exists then
for _, client in pairs(custom_lsp.register_lsp) do
2023-02-12 15:10:57 +07:00
table.insert(servers, client)
end
end
local data_ok, unregis = pcall(require, "core.config")
2023-02-25 17:44:22 +07:00
if data_ok then
if unregis.unregister_lsp ~= nil then
2023-03-05 19:29:48 +07:00
for _, unreg in pairs(unregis.unregister_lsp) do
2023-02-25 17:44:22 +07:00
local my_index = idxOf(servers, unreg)
2023-03-05 19:29:48 +07:00
if my_index ~= nil then
table.remove(servers, my_index)
end
2023-02-25 17:44:22 +07:00
end
end
end
2023-01-15 00:17:41 +07:00
local settings = {
ui = {
border = "none",
icons = {
package_installed = "",
package_pending = "",
package_uninstalled = "",
},
},
log_level = vim.log.levels.INFO,
max_concurrent_installers = 4,
}
require("mason").setup(settings)
2023-01-16 07:36:45 +07:00
-- * buka remark ini jika akan menggunakan list serverrs diatas dan remark config dibawah
2023-01-15 23:50:09 +07:00
-- require("mason-lspconfig").setup({
-- ensure_installed = servers,
-- automatic_installation = true,
-- })
2023-01-16 07:36:45 +07:00
--
-- * buka remark ini jika ingin menjalankan dengan cara install dan remark config diatas (pilih satu)
2023-01-15 23:50:09 +07:00
require("mason-lspconfig").setup()
2023-01-15 00:17:41 +07:00
local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig")
if not lspconfig_status_ok then
return
end
local opts = {}
for _, server in pairs(servers) do
opts = {
on_attach = require("user.lsp.handlers").on_attach,
capabilities = require("user.lsp.handlers").capabilities,
}
server = vim.split(server, "@")[1]
local require_ok, conf_opts = pcall(require, "user.lsp.settings." .. server)
if require_ok then
opts = vim.tbl_deep_extend("force", conf_opts, opts)
end
lspconfig[server].setup(opts)
end