74 lines
1.5 KiB
Lua
74 lines
1.5 KiB
Lua
local ok, mason_lspconfig, mason_tool_installer, lspconfig, conform, lint = pcall(function()
|
|
return require("mason-lspconfig"),
|
|
require("mason-tool-installer"),
|
|
require("lspconfig"),
|
|
require("conform"),
|
|
require("lint")
|
|
end)
|
|
|
|
if not ok then
|
|
return
|
|
end
|
|
|
|
mason_lspconfig.setup({
|
|
ensure_installed = { "lua_ls" },
|
|
})
|
|
|
|
mason_tool_installer.setup({
|
|
ensure_installed = { "stylua", "luacheck" },
|
|
})
|
|
|
|
lspconfig.lua_ls.setup({
|
|
-- capabilities = cmp_nvim_lsp.default_capabilities()
|
|
capabilities = require("config/lsp/lsp-capabilities"),
|
|
on_attach = require("config/lsp/lsp-attach"),
|
|
settings = { -- custom settings for lua
|
|
Lua = {
|
|
-- make the language server recognize "vim" global
|
|
diagnostics = {
|
|
globals = { "vim" },
|
|
},
|
|
workspace = {
|
|
-- make language server aware of runtime files
|
|
library = {
|
|
[vim.fn.expand("$VIMRUNTIME/lua")] = true,
|
|
[vim.fn.stdpath("config") .. "/lua"] = true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
})
|
|
|
|
conform.setup({
|
|
formatters_by_ft = {
|
|
lua = { "stylua" },
|
|
},
|
|
format_on_save = {
|
|
async = false,
|
|
timeout_ms = 500,
|
|
lsp_fallback = true,
|
|
},
|
|
})
|
|
|
|
vim.keymap.set({ "n", "v" }, "<leader>lf", function()
|
|
conform.format({
|
|
async = false,
|
|
timeout_ms = 500,
|
|
lsp_fallback = true,
|
|
})
|
|
end, { desc = "Format" })
|
|
|
|
lint.linters_by_ft = {
|
|
lua = { "luacheck" },
|
|
}
|
|
|
|
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
|
|
callback = function()
|
|
lint.try_lint()
|
|
end,
|
|
})
|
|
|
|
vim.keymap.set("n", "<leader>ll", function()
|
|
lint.try_lint()
|
|
end, { desc = "Lint" })
|