83 lines
2.8 KiB
Lua
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',
|
|
}
|
|
}
|