lePrev<cr>", { silent = true })
vim.keymap.set("n", "<leader>bn", "<cmd>BufferLineCycleNext<cr>", { silent = true })
vim.keymap.set("n", "<leader>bd", "<cmd>bd<cr>", { silent = true })
end,
},
{
"lukas-reineke/indent-blankline.nvim",
opts = {
show_end_of_line = true,
space_char_blankline = " ",
},
},
{
"L3MON4D3/LuaSnip",
version = "^1.1.0",
dependencies = {
"rafamadriz/friendly-snippets",
},
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
end,
},
{
"hrsh7th/nvim-cmp",
dependencies = {
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-nvim-lsp",
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
},
config = function()
local cmp = require("cmp")
cmp.setup({
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
}, {
{ name = 'buffer' },
{ name = "path" },
}),
})
end,
},
{
"williamboman/mason.nvim",
opts = {
ui = {
check_outdated_packages_on_open = false,
},
},
},
{
"neovim/nvim-lspconfig",
dependencies = {
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"hrsh7th/cmp-nvim-lsp",
},
config = function()
require("mason-lspconfig").setup({
ensure_installed = {
"bashls",
"clangd",
"denols",
"pyright",
"rust_analyzer",
},
})
local capabilities = require('cmp_nvim_lsp').default_capabilities()
local lspcfg = require("lspconfig")
lspcfg.bashls.setup({
capabilities = capabilities,
on_attach = on_attach
})
lspcfg.clangd.setup({
capabilities = capabilities,
on_attach = on_attach
})
lspcfg.denols.setup({
capabilities = capabilities,
on_attach = on_attach
})
lspcfg.pyright.setup({
capabilities = capabilities,
on_attach = on_attach
})
lspcfg.rust_analyzer.setup({
capabilities = capabilities,
on_attach = on_attach
})
end,
},
{
"jose-elias-alvarez/null-ls.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
},
config = function()
local nl = require("null-ls")
local sources = {
nl.builtins.diagnostics.eslint_d,
nl.builtins.diagnostics.ruff,
nl.builtins.formatting.beautysh,
nl.builtins.formatting.black,
nl.builtins.formatting.clang_format,
nl.builtins.formatting.prettierd,
nl.builtins.formatting.rustfmt,
nl.builtins.formatting.sql_formatter,
}
nl.setup({
sources = sources,
on_attach = on_attach,
})
end,
},
{
'numToStr/Comment.nvim',
config = true,
},
{
"folke/trouble.nvim",
dependencies = {
"nvim-tree/nvim-web-devicons",
},
config = true,
},
}, {
git = {
url_format = " |