2025-07-18 11:04:24 -07:00

78 lines
1.8 KiB
Lua

return {
{
"williamboman/mason.nvim",
opts = {}
},
{
"williamboman/mason-lspconfig.nvim",
opts = {
ensure_installed = { "lua_ls", "clangd","pyright", "jdtls", "cmake", "fish_lsp"}
}
},
{
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'hrsh7th/cmp-cmdline',
'saadparwaiz1/cmp_luasnip',
},
{
'L3MON4D3/LuaSnip',
dependencies = { 'rafamadriz/friendly-snippets' },
},
{
"neovim/nvim-lspconfig"
},
{
'hrsh7th/nvim-cmp',
config = function()
local cmp = require('cmp')
local cmp_select = { behavior = cmp.SelectBehavior.Select }
cmp.setup({
snippet = {
expand = function(args)
require('luasnip').lsp_expand(args.body)
require('luasnip.loaders.from_vscode').lazy_load()
end,
},
window = {
},
mapping = cmp.mapping.preset.insert({
['<c-space>'] = cmp.mapping.complete(),
['<c-n>'] = cmp.mapping.select_next_item(cmp_select),
['<c-p>'] = cmp.mapping.select_prev_item(cmp_select),
['<Tab>'] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
})
})
local capabilities = require('cmp_nvim_lsp').default_capabilities()
require("lspconfig").lua_ls.setup({
capabilities = capabilities
})
require("lspconfig").clangd.setup({
capabilities = capabilities
})
require("lspconfig").pyright.setup({
capabilities = capabilities
})
require("lspconfig").cmake.setup({
capabilities = capabilities
})
require("lspconfig").jdtls.setup({
capabilities = capabilities
})
require("lspconfig").fish_lsp.setup({
capabilities = capabilities
})
end
}
}