281 lines
6.2 KiB
Lua
281 lines
6.2 KiB
Lua
local overrides = require "configs.overrides"
|
|
local mappings = require "mappings"
|
|
|
|
---@type NvPluginSpec[]
|
|
return {
|
|
---------------------
|
|
-- General Plugins --
|
|
---------------------
|
|
-- LSP Stuff
|
|
-- TODO: make these lang specific
|
|
{
|
|
"williamboman/mason.nvim",
|
|
-- opts = overrides.mason
|
|
opts = {
|
|
PATH = "append",
|
|
},
|
|
},
|
|
|
|
{
|
|
"cbochs/grapple.nvim",
|
|
dependencies = {
|
|
{ "nvim-tree/nvim-web-devicons", lazy = true },
|
|
},
|
|
lazy = false,
|
|
},
|
|
{
|
|
"nvimdev/lspsaga.nvim",
|
|
config = function()
|
|
require("lspsaga").setup {}
|
|
end,
|
|
dependencies = {
|
|
"nvim-treesitter/nvim-treesitter", -- optional
|
|
"nvim-tree/nvim-web-devicons", -- optional
|
|
},
|
|
},
|
|
{ "ThePrimeagen/refactoring.nvim" },
|
|
{
|
|
"nvimtools/none-ls.nvim",
|
|
lazy = false,
|
|
dependencies = "nvimtools/none-ls-extras.nvim",
|
|
opts = function()
|
|
return require "configs.null-ls"
|
|
end,
|
|
},
|
|
{
|
|
"neovim/nvim-lspconfig",
|
|
config = function()
|
|
require "nvchad.configs.lspconfig"
|
|
require "configs.lspconfig"
|
|
end, -- Override to setup mason-lspconfig
|
|
dependencies = {
|
|
"nvimdev/lspsaga.nvim",
|
|
"williamboman/mason-lspconfig.nvim",
|
|
},
|
|
lazy = false,
|
|
},
|
|
-- Debugger
|
|
{
|
|
"mfussenegger/nvim-dap",
|
|
config = function(_, opts)
|
|
mappings.Dap()
|
|
end,
|
|
},
|
|
{
|
|
"rcarriga/nvim-dap-ui",
|
|
dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" },
|
|
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", lazy = false },
|
|
-- lazygit
|
|
{
|
|
"kdheepak/lazygit.nvim",
|
|
config = function()
|
|
mappings.LazyGit()
|
|
end,
|
|
lazy = false,
|
|
},
|
|
-- fzf
|
|
{ "junegunn/fzf.vim", lazy = false },
|
|
{
|
|
"nvim-telescope/telescope.nvim",
|
|
config = function()
|
|
require("telescope").setup()
|
|
require("telescope").load_extension "grapple"
|
|
end,
|
|
dependencies = { "nvim-lua/plenary.nvim", "junegunn/fzf.vim" },
|
|
},
|
|
|
|
-- Syntax Highlighting
|
|
{
|
|
"nvim-treesitter/nvim-treesitter",
|
|
opts = overrides.treesitter,
|
|
dependencies = {
|
|
-- additional parser
|
|
{ "nushell/tree-sitter-nu" },
|
|
},
|
|
},
|
|
-- File manager
|
|
{
|
|
"nvim-tree/nvim-tree.lua",
|
|
opts = overrides.nvimtree,
|
|
},
|
|
-- Diagnostics
|
|
{
|
|
"folke/trouble.nvim",
|
|
config = function()
|
|
require("trouble").setup()
|
|
mappings.Trouble()
|
|
end,
|
|
},
|
|
-- todo Highlights
|
|
{
|
|
"folke/todo-comments.nvim",
|
|
dependencies = { "nvim-lua/plenary.nvim", "folke/trouble.nvim" },
|
|
config = function()
|
|
require("todo-comments").setup()
|
|
end,
|
|
lazy = false,
|
|
},
|
|
-- TODO: look into this
|
|
{
|
|
"max397574/better-escape.nvim",
|
|
event = "InsertEnter",
|
|
config = function()
|
|
require("better_escape").setup()
|
|
end,
|
|
},
|
|
|
|
{
|
|
"zbirenbaum/copilot.lua",
|
|
event = "InsertEnter",
|
|
cmd = "Copilot",
|
|
config = function()
|
|
require("copilot").setup { suggestion = { auto_trigger = true } }
|
|
end,
|
|
},
|
|
-- Nyoom around files
|
|
{
|
|
"smoka7/hop.nvim",
|
|
lazy = false,
|
|
config = function()
|
|
local hop = require "hop"
|
|
hop.setup()
|
|
print(mappings.Hop())
|
|
end,
|
|
},
|
|
{
|
|
"kevinhwang91/nvim-ufo",
|
|
dependencies = { "kevinhwang91/promise-async" },
|
|
config = function()
|
|
require("ufo").setup {
|
|
provider_selector = function(bufnr, filetype, buftype)
|
|
return { "treesitter", "indent" }
|
|
end,
|
|
}
|
|
mappings.Ufo()
|
|
end,
|
|
lazy = false,
|
|
},
|
|
|
|
----------
|
|
-- Java --
|
|
----------
|
|
-- { "mfussenegger/nvim-jdtls" },
|
|
------------
|
|
-- Python --
|
|
------------
|
|
{
|
|
"mfussenegger/nvim-dap-python",
|
|
ft = "python",
|
|
dependencies = {
|
|
"mfussenegger/nvim-dap",
|
|
"rcarriga/nvim-dap-ui",
|
|
},
|
|
config = function(_, opts)
|
|
local path = nil
|
|
local is_windows = vim.fn.has "win64" == 1 or vim.fn.has "win32" == 1 or vim.fn.has "win16" == 1
|
|
if is_windows then
|
|
local cmd = io.popen("where.exe python", "r")
|
|
path = cmd:read "*line"
|
|
cmd:close()
|
|
else
|
|
local cmd = io.popen("which python", "r")
|
|
path = cmd:read "*line"
|
|
cmd:close()
|
|
end
|
|
|
|
require("dap-python").setup(path)
|
|
mappings.Dap_python()
|
|
end,
|
|
},
|
|
|
|
----------
|
|
-- Rust --
|
|
----------
|
|
{
|
|
"mrcjkb/rustaceanvim",
|
|
version = "^5", -- Recommended
|
|
lazy = false, -- This plugin is already lazy
|
|
},
|
|
-----------
|
|
-- swkhd --
|
|
-----------
|
|
{ "waycrate/swhkd-vim", ft = { "swhkdrc", "swhkd" } },
|
|
|
|
--------------
|
|
-- Obsidian --
|
|
--------------
|
|
-- {
|
|
-- "epwalsh/obsidian.nvim",
|
|
-- ft = "markdown",
|
|
-- lazy = false,
|
|
-- dependencies = {
|
|
-- "nvim-lua/plenary.nvim",
|
|
-- "nvim-telescope/telescope.nvim",
|
|
-- "nvim-treesitter/nvim-treesitter",
|
|
-- },
|
|
-- opts = {
|
|
-- -- workspaces = {}
|
|
-- config = function(_, opts)
|
|
-- end,
|
|
-- },
|
|
-- },
|
|
--------------
|
|
-- Markdown --
|
|
--------------
|
|
{
|
|
"nfrid/markdown-togglecheck",
|
|
dependencies = { "nfrid/treesitter-utils" },
|
|
ft = { "markdown" },
|
|
config = function(_, opts)
|
|
-- require("markdown-togglecheck").setup()
|
|
mappings.Markdown()
|
|
end,
|
|
},
|
|
|
|
------------
|
|
-- Golang --
|
|
------------
|
|
{
|
|
"leoluz/nvim-dap-go",
|
|
dependencies = {
|
|
"mfussenegger/nvim-dap",
|
|
"rcarriga/nvim-dap-ui",
|
|
},
|
|
ft = "go",
|
|
config = function(_, opts)
|
|
require("dap-go").setup()
|
|
mappings.Dap_go()
|
|
end,
|
|
},
|
|
------------
|
|
-- tmux --
|
|
------------
|
|
{
|
|
"christoomey/vim-tmux-navigator",
|
|
lazy = false,
|
|
},
|
|
-- 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,
|
|
-- }
|
|
}
|