Neovim configs for 2023. Hopefully they last.
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

-- 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,
})