dotfiles/nvim/.config/nvim/lua/plugins/lsp.lua
2026-03-29 00:46:35 -04:00

83 lines
2.8 KiB
Lua

return {
{
'neovim/nvim-lspconfig',
config = function()
local capabilities = require('cmp_nvim_lsp').default_capabilities()
local wk = require('which-key')
vim.lsp.enable('ocamllsp')
vim.lsp.config('ocamllsp', {
capabilities = capabilities
})
vim.lsp.enable('tinymist')
vim.lsp.config('tinymist', {
settings = {
formatterMode = "typstyle",
exportPdf = "onType",
semanticTokens = "disable",
}
})
vim.lsp.enable('millet')
vim.lsp.config('millet', {
root_dir = function(fname)
local util = vim.lsp.config.util
return util.root_pattern(".cm", ".mlb")(fname)
or util.path.dirname(fname)
end
})
vim.lsp.enable('clangd')
vim.lsp.config('clangd', {
capabilities = capabilities
})
vim.lsp.enable('zls')
vim.lsp.config('zls', {
capabilities = capabilities
})
vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('UserLspConfig', {}),
callback = function(ev)
local builtin = require('telescope.builtin')
wk.add({
{ 'gD', vim.lsp.buf.declaration, desc = 'Go to declaration' },
{ 'gR', builtin.lsp_references, desc = 'Go to references' },
{ 'gd', builtin.lsp_definitions, desc = 'Go to definition' },
{ '<leader>l', group = 'lsp' },
{ '<leader>la', vim.lsp.buf.code_action, desc = 'Code actions' },
{ '<leader>lr', vim.lsp.buf.rename, desc = 'Rename' },
{ '<leader>lf', vim.lsp.buf.format, desc = 'Format' },
{ '<leader>le', vim.diagnostic.open_float, desc = 'Show line diagnostics' },
{ '[d', vim.diagnostic.goto_prev, desc = 'Go to previous diagnostic' },
{ '[d', vim.diagnostic.goto_next, desc = 'Go to next diagnostic' },
})
end
})
end,
dependencies = {
'ray-x/lsp_signature.nvim',
'hrsh7th/nvim-cmp',
}
},
{
'ray-x/lsp_signature.nvim',
event = 'VeryLazy',
opts = {
hind_prefix = 'λ ',
},
},
{
'j-hui/fidget.nvim',
config = true,
event = 'VeryLazy',
},
{
'onsails/lspkind.nvim',
event = 'VeryLazy',
}
}