diff options
| author | Nic Gaffney <gaffney_nic@protonmail.com> | 2026-04-18 04:29:55 -0500 |
|---|---|---|
| committer | Nic Gaffney <gaffney_nic@protonmail.com> | 2026-04-18 04:29:55 -0500 |
| commit | 268cce40329eb3a91665ebe3ce65a0aa7b2c692e (patch) | |
| tree | 179f74cb920740ce03893f6d0cd51b74ad4f7800 /lua/config/packages | |
| download | nvim-268cce40329eb3a91665ebe3ce65a0aa7b2c692e.tar.gz | |
initial
Diffstat (limited to 'lua/config/packages')
| -rw-r--r-- | lua/config/packages/alpha.lua | 56 | ||||
| -rw-r--r-- | lua/config/packages/autopairs.lua | 3 | ||||
| -rw-r--r-- | lua/config/packages/barbar.lua | 19 | ||||
| -rw-r--r-- | lua/config/packages/blink.lua | 11 | ||||
| -rw-r--r-- | lua/config/packages/colorscheme.lua | 3 | ||||
| -rw-r--r-- | lua/config/packages/conform.lua | 23 | ||||
| -rw-r--r-- | lua/config/packages/fzf.lua | 5 | ||||
| -rw-r--r-- | lua/config/packages/gitsigns.lua | 7 | ||||
| -rw-r--r-- | lua/config/packages/init.lua | 18 | ||||
| -rw-r--r-- | lua/config/packages/lint.lua | 19 | ||||
| -rw-r--r-- | lua/config/packages/lspconfig.lua | 2 | ||||
| -rw-r--r-- | lua/config/packages/lualine.lua | 12 | ||||
| -rw-r--r-- | lua/config/packages/mini.lua | 1 | ||||
| -rw-r--r-- | lua/config/packages/tree.lua | 9 | ||||
| -rw-r--r-- | lua/config/packages/whichkey.lua | 1 |
15 files changed, 189 insertions, 0 deletions
diff --git a/lua/config/packages/alpha.lua b/lua/config/packages/alpha.lua new file mode 100644 index 0000000..5c3c1d8 --- /dev/null +++ b/lua/config/packages/alpha.lua @@ -0,0 +1,56 @@ +vim.pack.add({ gh("goolord/alpha-nvim") }) + +local status_ok, alpha = pcall(require, "alpha") +if not status_ok then + return +end + +local dashboard = require("alpha.themes.dashboard") +dashboard.section.header.val = { + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠻⣿⣿⣿⣿⣦⣄⠀⠀⠠⠰⠶⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣤⣤⡤⢀⣴⣿⣿⣿⠏⠀⠋⢉⣠⣿⣿⣿⣿⣿⣿⣿⣤⣄⡀⠈⠙⢿⣿⣿⣿⣧⡀⠐⠻⣶⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⠟⠁⠉⢠⣾⣿⣿⡿⠁⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠈⠻⣿⣿⣿⣷⡄⠀⢀⠙⢿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠟⢁⡔⠀⣠⣿⣿⣿⡿⠁⣠⣾⣿⣿⠛⣻⣿⣿⡿⠁⠹⣿⣿⣿⣿⣿⣿⣿⣦⡀⠹⣿⣿⣿⣿⡀⠈⢧⡈⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡟⢠⡿⠀⢰⣿⣿⣿⡿⠁⣼⣿⣿⡿⠃⣼⣿⠏⠀⠁⣴⣆⠈⠉⠙⢿⣿⣿⣿⣿⣷⡄⢹⣿⣿⣿⣷⠀⠀⢷⡈⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢠⣿⠃⠀⣿⣿⣿⣿⠃⣸⣿⣿⠟⢀⣾⠿⠋⠀⢠⣾⣿⣿⣷⣄⠀⠀⠙⢿⣿⣿⣿⣷⠀⣿⣿⣿⣿⡄⢣⠘⣇⠘⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡟⠀⢰⣿⣿⣿⡟⢀⣿⠟⠀⠰⠛⠋⠀⢠⣾⣿⣿⣿⣿⣿⡿⠟⠂⣀⠀⠉⠙⢿⣿⡇⢸⣿⣿⣿⣇⠘⡄⢹⡀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⡇⠀⠸⣿⣿⣿⡇⠈⠁⠀⠀⡀⠀⢀⣀⣤⣿⣿⣿⣿⣿⣿⣷⣤⣍⣉⣁⣤⣤⣀⠙⠓⠘⣿⣿⣿⣿⠀⣇⢸⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣾⣿⠁⠀⠀⣿⣿⣿⡇⢠⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⣿⠻⣿⠛⡆⢻⠸⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⠀⡆⠀⣿⣿⠙⡇⢸⣿⣿⡿⠿⠟⠋⠙⢻⣿⣿⣿⣿⣿⣿⣿⣿⠛⠙⠛⠿⢿⣿⣿⣿⠀⡟⠀⣿⠀⡇⢈⣀⠛⠛⠻⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⣀⣀⡀⠀⠀⢻⣿⡆⢁⠘⣿⣿⣇⣀⣀⣀⣠⣼⣿⣿⣿⣿⣿⣿⣿⣿⣦⣀⣀⠀⢠⣿⣿⣿⠀⠇⢰⣿⠀⡇⢠⣌⣉⣉⠓⠒⠶⠶⠤⠤⣤⣀⠀ ]], + [[ ⠀⠈⠓⠶⢄⠐⠲⠀⡄⢾⣿⣿⣿⣧⠀⠘⣿⡇⠘⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢸⣿⠀⠁⢸⣿⣿⣿⠇⢰⣀⣄⠠⠒⠉⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠘⠛⠇⠀⠹⣿⣿⣿⡄⠀⠹⣷⠀⠁⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⣿⡏⠀⠀⣾⡿⠟⠋⠀⠀⠉⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠉⣙⠛⠀⠀⠙⡆⠀⠀⢻⣿⣿⣿⣿⣿⣿⡿⠿⣿⠿⠿⣿⠿⣿⣿⣿⣿⣿⣿⣿⣇⢀⡾⠀⠇⠀⠀⢀⡠⠄⢀⣠⣶⡇⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣷⡆⠉⠀⠀⠀⠀⠀⠀⠀⢺⣿⣿⣿⣿⣿⣿⣿⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠈⢠⣶⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⡄⠀⠀⠸⣿⠀⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠀⠀⠀⣾⠁⠀⣠⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣷⠀⠘⡀⢻⡀⠀⠀⠀⠈⠙⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠉⠀⠀⠀⠀⠀⠃⠀⢰⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠸⣿⣿⡀⠀⣧⠘⡇⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⠿⢿⣿⠿⠿⠛⠋⠁⠀⠀⠀⠀⣀⣀⡀⠀⠀⠀⢸⣿⣿⡿⢰⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⡀⣿⣿⣇⠀⢿⡄⠃⢸⣿⣿⠀⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣾⡇⠈⣿⣿⣿⠀⠀⠀⢸⣿⣿⡇⢸⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⣿⡇⣿⣿⣿⡆⠸⣧⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠐⣶⣶⣶⣿⣿⣿⣿⣿⡿⠋⠁⠀⣿⣿⡇⠀⠀⠀⣼⣿⣿⡇⠈⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⣿⡇⣿⣿⣿⣷⠀⢿⡀⠀⣿⣇⠀⠱⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⠿⠛⢉⡠⠚⠀⢰⣿⣿⡇⠀⠀⠀⣿⣿⣿⡇⠀⠀⣠⡀⠀⠀⠀⠀⠀⠀⠀ ]], + [[ ⠀⠀⠀⠀⠀⠀⠀⢰⡆⠀⢹⡇⢹⣿⣿⣿⡇⠸⡇⠀⢸⣿⡄⠀⢄⣉⠛⠒⠒⠦⠤⠤⠤⠤⠒⠒⠉⣁⣤⠂⠀⣸⣿⣿⠇⢨⡰⢀⣿⣿⣿⡇⠀⣰⣿⣷⡀⠀⠀⠀⠀⠀⠀ ]], +} + +dashboard.section.buttons.val = { + dashboard.button("f", " Find file", ":FzfLua files <CR>"), + dashboard.button("e", " New file", ":ene <BAR> startinsert <CR>"), + dashboard.button("r", " Recently used files", ":FzfLua oldfiles <CR>"), + dashboard.button("t", " Find text", ":FzfLua live_grep <CR>"), + dashboard.button("c", " Configuration", ":e ~/.config/nvim/init.vim<CR>"), + dashboard.button("q", " Quit Neovim", ":qa<CR>"), +} + +local function footer() + return "The greatest joy of magic lies in searching for it" +end + +dashboard.section.footer.val = footer() + +dashboard.section.footer.opts.hl = "Type" +dashboard.section.header.opts.hl = "Include" +dashboard.section.buttons.opts.hl = "Keyword" + +dashboard.opts.opts.noautocmd = true +alpha.setup(dashboard.opts) diff --git a/lua/config/packages/autopairs.lua b/lua/config/packages/autopairs.lua new file mode 100644 index 0000000..3e2c018 --- /dev/null +++ b/lua/config/packages/autopairs.lua @@ -0,0 +1,3 @@ +vim.pack.add({ gh("windwp/nvim-autopairs") }) + +require("nvim-autopairs").setup({}) diff --git a/lua/config/packages/barbar.lua b/lua/config/packages/barbar.lua new file mode 100644 index 0000000..a3b6153 --- /dev/null +++ b/lua/config/packages/barbar.lua @@ -0,0 +1,19 @@ +vim.pack.add({ gh("romgrk/barbar.nvim") }) + +require("barbar").setup({ + animation = true, + auto_hide = true, + tabpages = true, + gitsigns = { + added = { enabled = true, icon = "+" }, + changed = { enabled = true, icon = "~" }, + deleted = { enabled = true, icon = "-" }, + }, + sidebar_filetypes = { + ["neo-tree"] = { event = "BufWipeout", text = "NeoTree" }, + }, +}) + +vim.api.nvim_set_keymap("n", "H", "<cmd>BufferPrevious<CR>", { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "L", "<cmd>BufferNext<CR>", { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "<c-x>", "<cmd>BufferClose<CR>", { noremap = true, silent = true }) diff --git a/lua/config/packages/blink.lua b/lua/config/packages/blink.lua new file mode 100644 index 0000000..b4f1433 --- /dev/null +++ b/lua/config/packages/blink.lua @@ -0,0 +1,11 @@ +vim.pack.add({ { src = gh("saghen/blink.cmp"), version = vim.version.range("1.*") } }) + +require("blink.cmp").setup({ + sources = { default = { "lsp", "path" } }, + signature = { enabled = true }, -- show signature help + completion = { + documentation = { auto_show = true, auto_show_delay_ms = 500 }, + list = { selection = { preselect = false, auto_insert = true } }, + }, + keymap = { preset = "default" }, +}) diff --git a/lua/config/packages/colorscheme.lua b/lua/config/packages/colorscheme.lua new file mode 100644 index 0000000..12f8616 --- /dev/null +++ b/lua/config/packages/colorscheme.lua @@ -0,0 +1,3 @@ +vim.pack.add({ gh("sainnhe/everforest") }) + +vim.cmd.colorscheme(color) diff --git a/lua/config/packages/conform.lua b/lua/config/packages/conform.lua new file mode 100644 index 0000000..af59b42 --- /dev/null +++ b/lua/config/packages/conform.lua @@ -0,0 +1,23 @@ +vim.pack.add({ gh("stevearc/conform.nvim") }) + +require("conform").setup({ + default_format_opts = { lsp_format = "fallback", async = true }, + formatters_by_ft = { + rust = { "rustfmt" }, + lua = { "stylua" }, + markdown = { "prettier" }, + makefile = { "bake" }, + c = { "clang-format" }, + cpp = { "clang-format" }, + bash = { "beautysh" } + }, +}) +vim.keymap.set({ "n", "x" }, "<leader>lf", function() require("conform").format() end, { desc = "conform format" }) + +vim.api.nvim_create_autocmd("BufWritePre", { + pattern = "*", + callback = function(args) + require("conform").format({ bufnr = args.buf }) + end, +}) + diff --git a/lua/config/packages/fzf.lua b/lua/config/packages/fzf.lua new file mode 100644 index 0000000..a40ddfa --- /dev/null +++ b/lua/config/packages/fzf.lua @@ -0,0 +1,5 @@ +vim.pack.add({{ src = gh("ibhagwan/fzf-lua") }}) + +vim.keymap.set("n", "<leader>/", function() require("fzf-lua").live_grep_native() end, { desc = "fzf live grep" }) +vim.keymap.set("n", "<leader>F", function() require("fzf-lua").files() end, { desc = "fzf find files" }) + diff --git a/lua/config/packages/gitsigns.lua b/lua/config/packages/gitsigns.lua new file mode 100644 index 0000000..2161b22 --- /dev/null +++ b/lua/config/packages/gitsigns.lua @@ -0,0 +1,7 @@ +vim.pack.add({{ src = gh("lewis6991/gitsigns.nvim") }}) + +require("gitsigns").setup() +vim.keymap.set("n", "<leader>gg", "<CMD>Gitsigns<CR>", { desc = "Gitsigns: menu" }) +vim.keymap.set("n", "<leader>gb", "<CMD>Gitsigns blame_line<CR>", { desc = "Gitsigns: blame line" }) +vim.keymap.set("n", "<leader>gd", "<CMD>vert rightb Gitsigns diffthis<CR>", { desc = "Gitsigns: open git diff" }) + diff --git a/lua/config/packages/init.lua b/lua/config/packages/init.lua new file mode 100644 index 0000000..0b30698 --- /dev/null +++ b/lua/config/packages/init.lua @@ -0,0 +1,18 @@ +gh = function(x) + return "https://github.com/" .. x +end + +require("config.packages.alpha") +require("config.packages.fzf") +require("config.packages.tree") +require("config.packages.gitsigns") +require("config.packages.autopairs") +require("config.packages.lualine") +require("config.packages.lspconfig") +require("config.packages.conform") +require("config.packages.lint") +require("config.packages.blink") +require("config.packages.colorscheme") +require("config.packages.barbar") +require("config.packages.mini") +require("config.packages.whichkey") diff --git a/lua/config/packages/lint.lua b/lua/config/packages/lint.lua new file mode 100644 index 0000000..7f423ab --- /dev/null +++ b/lua/config/packages/lint.lua @@ -0,0 +1,19 @@ +vim.pack.add({ gh("mfussenegger/nvim-lint") }) + +-- linters +local global_linters = { "typos" } +require("lint").linters_by_ft = { + c = { "clangtidy" }, + cpp = { "clangtidy" }, +} + +local lint = require("lint") +vim.api.nvim_create_autocmd("BufWritePost", { + callback = function() + lint.try_lint() + for _, linter in ipairs(global_linters) do + lint.try_lint(linter) + end + end, +}) + diff --git a/lua/config/packages/lspconfig.lua b/lua/config/packages/lspconfig.lua new file mode 100644 index 0000000..afb1092 --- /dev/null +++ b/lua/config/packages/lspconfig.lua @@ -0,0 +1,2 @@ +vim.pack.add({{ src = gh("neovim/nvim-lspconfig") }}) + diff --git a/lua/config/packages/lualine.lua b/lua/config/packages/lualine.lua new file mode 100644 index 0000000..3fa7281 --- /dev/null +++ b/lua/config/packages/lualine.lua @@ -0,0 +1,12 @@ +vim.pack.add({{ src = gh("nvim-lualine/lualine.nvim") }}) + +require("lualine").setup({ + options = { + theme = color, + icons_enabled = true, + component_separators = { left = '', right = '' }, + section_separators = { left = '', right = '' }, + }, +}) + + diff --git a/lua/config/packages/mini.lua b/lua/config/packages/mini.lua new file mode 100644 index 0000000..c2c0a65 --- /dev/null +++ b/lua/config/packages/mini.lua @@ -0,0 +1 @@ +vim.pack.add({ gh("echasnovski/mini.icons") }) diff --git a/lua/config/packages/tree.lua b/lua/config/packages/tree.lua new file mode 100644 index 0000000..cf89af0 --- /dev/null +++ b/lua/config/packages/tree.lua @@ -0,0 +1,9 @@ +vim.pack.add({ + { src = gh("nvim-tree/nvim-tree.lua") }, + { src = gh("nvim-tree/nvim-web-devicons") }, +}) + +require("nvim-tree").setup() +vim.keymap.set("n", "<leader>e", function() + require("nvim-tree.api").tree.toggle() +end, { desc = "File Tree Toggle" }) diff --git a/lua/config/packages/whichkey.lua b/lua/config/packages/whichkey.lua new file mode 100644 index 0000000..71ff88f --- /dev/null +++ b/lua/config/packages/whichkey.lua @@ -0,0 +1 @@ +vim.pack.add({ gh("folke/which-key.nvim") }) |
