Files
dotfiles/nvim/.config/nvim/lua/plugins.lua
Matt Anderson 71fe62d71c many updates
2026-05-29 17:50:15 -05:00

177 lines
4.8 KiB
Lua

-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
-- Install Plugins
require('lazy').setup({
-- Core
'williamboman/mason.nvim',
-- LSP
'neovim/nvim-lspconfig',
'hrsh7th/nvim-cmp',
'hrsh7th/cmp-nvim-lsp',
'folke/neodev.nvim',
'qvalentin/helm-ls.nvim',
{ 'L3MON4D3/LuaSnip', version = 'v2.1.0' },
-- DAP
'mfussenegger/nvim-dap',
'rcarriga/nvim-dap-ui',
'nvim-neotest/nvim-nio',
'leoluz/nvim-dap-go',
'romus204/tree-sitter-manager.nvim',
'luukvbaal/nnn.nvim',
'nvim-tree/nvim-tree.lua',
'lewis6991/gitsigns.nvim',
'mhartington/formatter.nvim',
{
'folke/zen-mode.nvim',
opts = {
window = {
width = 0.5,
options = {
signcolumn = "no",
number = false,
relativenumber = false,
linebreak = true,
wrap = true,
}
},
}
},
-- {
-- "CopilotC-Nvim/CopilotChat.nvim",
-- dependencies = {
-- { "github/copilot.vim" }, -- or zbirenbaum/copilot.lua
-- },
-- build = "make tiktoken", -- Only on MacOS or Linux
-- opts = {
-- window = {
-- layout = 'replace',
-- },
-- mappings = {
-- accept_diff = false, -- disables the default <C-y> “accept nearest diff”
-- },
-- },
-- },
-- Utility
'windwp/nvim-autopairs',
'nvim-telescope/telescope.nvim',
'nvim-telescope/telescope-ui-select.nvim',
'nvim-lua/plenary.nvim',
-- 'folke/which-key.nvim',
{
"nvim-orgmode/orgmode",
event = 'VeryLazy',
ft = { 'org' },
config = function()
require("orgmode").setup({
org_startup_indented = true,
org_agenda_files = '~/doc/org/**/*',
org_default_notes_file = '~/doc/org/scratch.org',
org_startup_indented = true,
org_deadline_warning_days = 0,
org_agenda_custom_commands = {
w = {
description = "Work",
types = {
{
type = 'agenda',
org_agenda_tag_filter_preset = 'work'
}
}
},
p = {
description = "Personal",
types = {
{
type = 'agenda',
org_agenda_tag_filter_preset = 'personal'
}
}
},
}
})
end,
},
})
-- Initialize Plugins
require("mason").setup()
require('neodev').setup()
require("tree-sitter-manager").setup()
require('nnn').setup({
picker = {
cmd = "nnn -C",
style = { border = "rounded" },
fullscreen = false,
},
})
local function tree_on_attach(bufnr)
local api = require('nvim-tree.api')
api.config.mappings.default_on_attach(bufnr)
vim.keymap.del('n', '<C-e>', { buffer = bufnr })
vim.keymap.set("n", "<M-h>", function() api.tree.resize({ relative = -5 }) end, { buffer = bufnr })
vim.keymap.set("n", "<M-l>", function() api.tree.resize({ relative = 5 }) end, { buffer = bufnr })
end
require('nvim-tree').setup({
on_attach = tree_on_attach,
renderer = {
full_name = true,
},
view = {
side = "left",
},
tab = {
sync = {
open = true,
close = true,
},
},
})
-- require('gitsigns').setup()
require('formatter').setup({
filetype = {
python = {
function()
return {
exe = "black",
args = { "--quiet", "-" },
stdin = true
}
end
}
}
})
require('telescope').setup({
defaults = {
file_ignore_patterns = {
"%.git/",
"node_modules/",
"%.DS_Store",
},
},
pickers = {
find_files = {
hidden = true,
no_ignore = true,
},
},
})
require("telescope").load_extension("ui-select")
require('nvim-autopairs').setup()
-- require('which-key').setup()
-- DAP Setup
-- require('dap-python').setup('~/venv/bin/python')
require('dap-go').setup()