You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.2 KiB
58 lines
1.2 KiB
-- Learn the keybindings, see :help lsp-zero-keybindings
|
|
-- Learn to configure LSP servers, see :help lsp-zero-api-showcase
|
|
local lsp = require('lsp-zero')
|
|
lsp.preset('recommended')
|
|
|
|
lsp.setup_nvim_cmp({
|
|
experimental = {
|
|
ghost_text = true,
|
|
},
|
|
})
|
|
|
|
-- (Optional) Configure lua language server for neovim
|
|
lsp.nvim_workspace()
|
|
|
|
local platform = require("mason-core.platform");
|
|
local servers = {
|
|
'tailwindcss',
|
|
'tsserver',
|
|
'texlab',
|
|
'pyright',
|
|
'efm',
|
|
'ltex',
|
|
'jsonls'
|
|
}
|
|
|
|
if not (platform.is.linux_x64_musl or
|
|
platform.is.linux_arm64_musl)
|
|
then
|
|
table.insert(servers, "sumneko_lua");
|
|
end
|
|
|
|
lsp.ensure_installed(servers)
|
|
|
|
lsp.configure("efm", {
|
|
settings = {
|
|
languages = {
|
|
sh = "shellcheck -x",
|
|
bash = "shellcheck -x",
|
|
zsh = "shellcheck -x",
|
|
}
|
|
},
|
|
filetypes = { "sh", "bash", "zsh" }
|
|
})
|
|
|
|
lsp.on_attach(function(client, bufnr)
|
|
local opts = { buffer = bufnr, remap = false }
|
|
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
|
|
vim.keymap.set("n", "<leader>rn", function() vim.lsp.buf.rename() end, opts)
|
|
end)
|
|
|
|
|
|
lsp.setup()
|
|
|
|
vim.diagnostic.config({
|
|
virtual_text = true,
|
|
underline = true,
|
|
float = true,
|
|
})
|