197 lines
4.3 KiB
Lua
197 lines
4.3 KiB
Lua
local overrides = require("custom.configs.overrides")
|
|
|
|
---@type NvPluginSpec[]
|
|
local plugins = {
|
|
---------------------
|
|
-- General Plugins --
|
|
---------------------
|
|
-- LSP Stuff
|
|
{
|
|
"williamboman/mason.nvim",
|
|
-- opts = overrides.mason
|
|
opts = {
|
|
ensure_installed = {
|
|
-- rust stuff
|
|
"rust-analyzer",
|
|
|
|
-- lua stuff
|
|
"lua-language-server",
|
|
"stylua",
|
|
|
|
-- web dev stuff
|
|
"css-lsp",
|
|
"html-lsp",
|
|
"typescript-language-server",
|
|
-- "deno",
|
|
"prettier",
|
|
|
|
-- c/cpp stuff
|
|
"clangd",
|
|
"clang-format",
|
|
|
|
-- python stuff
|
|
"pyright",
|
|
"mypy",
|
|
"autoflake",
|
|
"debugpy"
|
|
-- "ruff",
|
|
|
|
}
|
|
}
|
|
},
|
|
{
|
|
'nvimtools/none-ls.nvim',
|
|
ft = {'python'},
|
|
opts = function()
|
|
return require('custom.configs.null-ls')
|
|
end
|
|
},
|
|
{
|
|
"neovim/nvim-lspconfig",
|
|
config = function()
|
|
require "plugins.configs.lspconfig"
|
|
require "custom.configs.lspconfig"
|
|
end, -- Override to setup mason-lspconfig
|
|
ft = {"python"}
|
|
},
|
|
|
|
-- Debugger
|
|
{'mfussenegger/nvim-dap',
|
|
config = function(_,opts)
|
|
require('core.utils').load_mappings('dap')
|
|
end
|
|
},
|
|
{
|
|
"rcarriga/nvim-dap-ui",
|
|
dependencies = "mfussenegger/nvim-dap",
|
|
config = function ()
|
|
local dap = require('dap')
|
|
local dapui = require("dapui")
|
|
dapui.setup()
|
|
dap.listeners.after.event_initialized["dapui_config"] = function()
|
|
dapui.open()
|
|
end
|
|
dap.listeners.before.event_terminated["dapui_config"] = function()
|
|
dapui.close()
|
|
end
|
|
dap.listeners.before.event_exited["dapui_config"] = function()
|
|
dapui.close()
|
|
end
|
|
end
|
|
},
|
|
|
|
-- Delimiters
|
|
'Raimondi/delimitMate',
|
|
|
|
-- Syntax Highlighting
|
|
{
|
|
"nvim-treesitter/nvim-treesitter",
|
|
opts = overrides.treesitter,
|
|
},
|
|
-- File manager
|
|
{
|
|
"nvim-tree/nvim-tree.lua",
|
|
opts = overrides.nvimtree,
|
|
},
|
|
|
|
-- Install a plugin
|
|
{
|
|
"max397574/better-escape.nvim",
|
|
event = "InsertEnter",
|
|
config = function()
|
|
require("better_escape").setup()
|
|
end,
|
|
},
|
|
|
|
-- TODO: remove this on nvim 0.10
|
|
{
|
|
"ojroques/nvim-osc52",
|
|
config = function()
|
|
local function copy(lines, _)
|
|
require('osc52').copy(table.concat(lines, '\n'))
|
|
end
|
|
|
|
local function paste()
|
|
return {vim.fn.split(vim.fn.getreg(''), '\n'), vim.fn.getregtype('')}
|
|
end
|
|
|
|
vim.g.clipboard = {
|
|
name = 'osc52',
|
|
copy = {['+'] = copy, ['*'] = copy},
|
|
paste = {['+'] = paste, ['*'] = paste},
|
|
}
|
|
|
|
-- Now the '+' register will copy to system clipboard using OSC52
|
|
-- vim.keymap.set('n', '<leader>c', '"+y')
|
|
-- vim.keymap.set('n', '<leader>cc', '"+yy')
|
|
end
|
|
},
|
|
|
|
-- Nyoom around files
|
|
{
|
|
"smoka7/hop.nvim",
|
|
lazy = false,
|
|
config = function ()
|
|
local hop = require('hop')
|
|
hop.setup()
|
|
require('core.utils').load_mappings('hop')
|
|
|
|
end
|
|
},
|
|
|
|
------------
|
|
-- Python --
|
|
------------
|
|
{
|
|
'mfussenegger/nvim-dap-python',
|
|
ft = 'python',
|
|
dependencies = {
|
|
'mfussenegger/nvim-dap',
|
|
'rcarriga/nvim-dap-ui'
|
|
},
|
|
config = function(_, opts)
|
|
local path = vim.fn.stdpath("data") .. "/mason/packages/debugpy/venv/bin/python"
|
|
require('dap-python').setup(path)
|
|
require('core.utils').load_mappings('dap_python')
|
|
end
|
|
},
|
|
|
|
----------
|
|
-- Rust --
|
|
----------
|
|
{ 'rust-lang/rust.vim', ft = 'rust',
|
|
init = function()
|
|
vim.g.rustfmt_autosave = 1
|
|
end
|
|
},
|
|
{
|
|
'simrat39/rust-tools.nvim',
|
|
ft = 'rust',
|
|
dependencies = "neovim/nvim-lspconfig",
|
|
opts = function()
|
|
return require('custom.configs.rust-tools')
|
|
end,
|
|
config = function(_, opts)
|
|
require("rust-tools").setup(opts)
|
|
end
|
|
},
|
|
{
|
|
'saecki/crates.nvim',
|
|
ft = {'rust', 'toml'},
|
|
config = function (_, opts)
|
|
local crates = require('crates')
|
|
crates.setup(opts)
|
|
crates.show()
|
|
end
|
|
}
|
|
|
|
-- All NvChad plugins are lazy-loaded by default
|
|
-- For a plugin to be loaded, you will need to set either `ft`, `cmd`, `keys`, `event`, or set `lazy = false`
|
|
-- If you want a plugin to load on startup, add `lazy = false` to a plugin spec, for example
|
|
-- {
|
|
-- "mg979/vim-visual-multi",
|
|
-- lazy = false,
|
|
-- }
|
|
}
|
|
|
|
return plugins
|