232 lines
4.9 KiB
Lua
232 lines
4.9 KiB
Lua
return {
|
|
-- vista-like outline view for code
|
|
{
|
|
"stevearc/aerial.nvim",
|
|
config = true,
|
|
-- Optional dependencies
|
|
dependencies = {
|
|
"nvim-treesitter/nvim-treesitter",
|
|
"nvim-tree/nvim-web-devicons",
|
|
},
|
|
cmd = {
|
|
"AerialToggle",
|
|
"AerialOpen",
|
|
"AerialOpenAll",
|
|
"AerialClose",
|
|
"AerialCloseAll",
|
|
"AerialNext",
|
|
"AerialPrev",
|
|
"AerialGo",
|
|
"AerialInfo",
|
|
"AerialNavToggle",
|
|
"AerialNavOpen",
|
|
"AerialNavClose",
|
|
},
|
|
opts = {
|
|
backends = { "treesitter", "lsp", "markdown", "man" },
|
|
},
|
|
},
|
|
|
|
-- lsp setup
|
|
{
|
|
"junnplus/lsp-setup.nvim",
|
|
dependencies = {
|
|
{
|
|
"neovim/nvim-lspconfig",
|
|
-- will sometimes not keep up with lsp changes if set to stable
|
|
version = false,
|
|
},
|
|
{
|
|
"williamboman/mason.nvim",
|
|
cmd = {
|
|
"Mason",
|
|
"MasonInstall",
|
|
"MasonUninstall",
|
|
"MasonUninstallAll",
|
|
"MasonLog",
|
|
"MasonUpdate",
|
|
},
|
|
build = ":MasonUpdate",
|
|
},
|
|
{
|
|
"williamboman/mason-lspconfig.nvim",
|
|
cmd = { "LspInstall", "LspUninstall" },
|
|
},
|
|
{
|
|
"jose-elias-alvarez/null-ls.nvim",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
"jay-babu/mason-null-ls.nvim",
|
|
},
|
|
event = "VeryLazy",
|
|
},
|
|
},
|
|
event = "BufReadPost",
|
|
config = function()
|
|
require("plugins.config.lsp")
|
|
end,
|
|
},
|
|
-- completion setup
|
|
{
|
|
"hrsh7th/nvim-cmp",
|
|
branch = "main",
|
|
dependencies = {
|
|
"andersevenrud/cmp-tmux",
|
|
"cbarrete/completion-vcard",
|
|
"f3fora/cmp-spell",
|
|
"hrsh7th/cmp-nvim-lsp",
|
|
"hrsh7th/cmp-path",
|
|
"hrsh7th/cmp-buffer",
|
|
"hrsh7th/cmp-calc",
|
|
"hrsh7th/cmp-cmdline",
|
|
"hrsh7th/cmp-nvim-lua",
|
|
"hrsh7th/cmp-nvim-lsp-signature-help",
|
|
"dmitmel/cmp-digraphs",
|
|
"jc-doyle/cmp-pandoc-references",
|
|
"kdheepak/cmp-latex-symbols",
|
|
"lukas-reineke/cmp-rg",
|
|
"crispgm/cmp-beancount",
|
|
"ray-x/cmp-treesitter",
|
|
"saadparwaiz1/cmp_luasnip",
|
|
{
|
|
"L3MON4D3/LuaSnip",
|
|
dependencies = { "rafamadriz/friendly-snippets" },
|
|
},
|
|
},
|
|
config = function()
|
|
require("plugins.config.cmp")
|
|
end,
|
|
event = { "InsertEnter", "CmdlineEnter", "VeryLazy" },
|
|
},
|
|
|
|
-- loading animations for some LSP
|
|
{ "j-hui/fidget.nvim", config = true, tag = "legacy", event = "VeryLazy" },
|
|
|
|
-- testing setup
|
|
{
|
|
"nvim-neotest/neotest",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
"nvim-treesitter/nvim-treesitter",
|
|
"antoinemadec/FixCursorHold.nvim",
|
|
|
|
"nvim-neotest/neotest-python",
|
|
},
|
|
config = function()
|
|
require("neotest").setup({
|
|
adapters = {
|
|
require("neotest-python")({
|
|
-- with coverage requires coverage.py and pytest-cov installed
|
|
args = { "--cov" },
|
|
}),
|
|
},
|
|
})
|
|
local status, wk = pcall(require, "which-key")
|
|
if status then
|
|
wk.register({ ["<localleader>t"] = { name = "+test" } })
|
|
end
|
|
end,
|
|
ft = { "python" },
|
|
keys = {
|
|
{
|
|
"<leader>st",
|
|
[[<cmd>lua require('neotest').summary.toggle()<cr>]],
|
|
desc = "toggle test list",
|
|
silent = true,
|
|
},
|
|
{
|
|
"<leader>sT",
|
|
[[<cmd>lua require('neotest').output_panel.toggle()<cr>]],
|
|
desc = "toggle test output",
|
|
silent = true,
|
|
},
|
|
{
|
|
"<localleader>to",
|
|
[[<cmd>lua require('neotest').output.open()<cr>]],
|
|
desc = "toggle test output",
|
|
silent = true,
|
|
},
|
|
{
|
|
"<localleader>tt",
|
|
[[<cmd>lua require('neotest').run.run()<cr>]],
|
|
desc = "run nearest test",
|
|
silent = true,
|
|
},
|
|
{
|
|
"<localleader>td",
|
|
[[<cmd>lua require('neotest').run.run({strategy = "dap"})<cr>]],
|
|
desc = "debug nearest test",
|
|
silent = true,
|
|
}, -- REQUIRES DAP
|
|
{
|
|
"<localleader>tT",
|
|
[[<cmd>lua require('neotest').run.run(vim.fn.expand("%"))<cr>]],
|
|
desc = "test current file",
|
|
silent = true,
|
|
},
|
|
{
|
|
"<localleader>tr",
|
|
[[<cmd>lua require('neotest').run.run_last()<cr>]],
|
|
desc = "re-run last test",
|
|
silent = true,
|
|
},
|
|
{
|
|
"<localleader>tw",
|
|
[[<cmd>lua require('neotest').watch.toggle()<cr>]],
|
|
desc = "watch current test",
|
|
silent = true,
|
|
},
|
|
{
|
|
"<localleader>tW",
|
|
[[<cmd>lua require('neotest').watch.toggle(vim.fn.expand("%"))<cr>]],
|
|
desc = "watch current file",
|
|
silent = true,
|
|
},
|
|
},
|
|
},
|
|
-- TODO needs to pick up poetry env for python,
|
|
-- currently just hard-codes running through poetry
|
|
{
|
|
"andythigpen/nvim-coverage",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
},
|
|
config = function()
|
|
require("coverage").setup({
|
|
lang = { python = { coverage_command = "poetry run coverage json -q -o -" } },
|
|
})
|
|
end,
|
|
ft = { "python" },
|
|
cmd = {
|
|
"Coverage",
|
|
"CoverageLoad",
|
|
"CoverageLoadLcov",
|
|
"CoverageShow",
|
|
"CoverageHide",
|
|
"CoverageToggle",
|
|
"CoverageClear",
|
|
"CoverageSummary",
|
|
},
|
|
keys = {
|
|
{
|
|
"<localleader>tp",
|
|
[[<cmd>Coverage<cr>]],
|
|
desc = "show coverage report",
|
|
silent = true,
|
|
},
|
|
{
|
|
"<localleader>tP",
|
|
[[<cmd>CoverageToggle<cr>]],
|
|
desc = "toggle coverage gutter",
|
|
silent = true,
|
|
},
|
|
{
|
|
"<localleader>ts",
|
|
[[<cmd>CoverageSummary<cr>]],
|
|
desc = "show coverage summary",
|
|
silent = true,
|
|
},
|
|
},
|
|
},
|
|
}
|