From b951634ce64ce795b804cad0a801797184189038 Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Mon, 10 Nov 2025 12:33:27 +0100 Subject: [PATCH] nvim: Use lazy instead of vim.pack --- nvim/.config/nvim/init.lua | 29 +++- nvim/.config/nvim/lazy-lock.json | 30 ++++ .../{plugins/lsp/completion.lua => lsp.lua} | 42 +++++ nvim/.config/nvim/lua/plugins/alpha.lua | 30 ++-- nvim/.config/nvim/lua/plugins/autosession.lua | 60 +++---- nvim/.config/nvim/lua/plugins/copilot.lua | 26 ++-- nvim/.config/nvim/lua/plugins/git.lua | 19 ++- nvim/.config/nvim/lua/plugins/harpoon.lua | 54 ++++--- nvim/.config/nvim/lua/plugins/init.lua | 10 -- .../nvim/lua/plugins/lsp/diagnostics.lua | 26 ---- nvim/.config/nvim/lua/plugins/lsp/init.lua | 3 - nvim/.config/nvim/lua/plugins/lsp/plugin.lua | 8 - nvim/.config/nvim/lua/plugins/lualine.lua | 64 ++++---- .../.config/nvim/lua/plugins/luasnip/init.lua | 23 ++- .../nvim/lua/plugins/luasnip/plugin.lua | 19 --- nvim/.config/nvim/lua/plugins/mason.lua | 9 ++ nvim/.config/nvim/lua/plugins/noice.lua | 73 +++++---- nvim/.config/nvim/lua/plugins/oil.lua | 15 +- nvim/.config/nvim/lua/plugins/outline.lua | 25 +-- nvim/.config/nvim/lua/plugins/surround.lua | 5 +- nvim/.config/nvim/lua/plugins/telescope.lua | 47 +++--- nvim/.config/nvim/lua/plugins/theme.lua | 23 +-- .../nvim/lua/plugins/todo-comments.lua | 17 +- nvim/.config/nvim/lua/plugins/toggleterm.lua | 16 +- nvim/.config/nvim/lua/plugins/treesitter.lua | 39 +++-- nvim/.config/nvim/lua/plugins/undotree.lua | 9 +- nvim/.config/nvim/lua/plugins/whichkey.lua | 44 +++--- nvim/.config/nvim/lua/set.lua | 1 + nvim/.config/nvim/nvim-pack-lock.json | 146 ------------------ 29 files changed, 444 insertions(+), 468 deletions(-) create mode 100644 nvim/.config/nvim/lazy-lock.json rename nvim/.config/nvim/lua/{plugins/lsp/completion.lua => lsp.lua} (69%) delete mode 100644 nvim/.config/nvim/lua/plugins/init.lua delete mode 100644 nvim/.config/nvim/lua/plugins/lsp/diagnostics.lua delete mode 100644 nvim/.config/nvim/lua/plugins/lsp/init.lua delete mode 100644 nvim/.config/nvim/lua/plugins/lsp/plugin.lua delete mode 100644 nvim/.config/nvim/lua/plugins/luasnip/plugin.lua create mode 100644 nvim/.config/nvim/lua/plugins/mason.lua delete mode 100644 nvim/.config/nvim/nvim-pack-lock.json diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index 91040f0..9199450 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -1,3 +1,30 @@ require('set') -require('plugins') require('keymaps') +require('lsp') + + +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + spec = { + { import = "plugins" }, + }, + checker = { enabled = true }, + change_detection = { + enabled = false + }, +}) diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json new file mode 100644 index 0000000..1e5c82b --- /dev/null +++ b/nvim/.config/nvim/lazy-lock.json @@ -0,0 +1,30 @@ +{ + "LuaSnip": { "branch": "master", "commit": "3732756842a2f7e0e76a7b0487e9692072857277" }, + "alpha-nvim": { "branch": "main", "commit": "3979b01cb05734331c7873049001d3f2bb8477f4" }, + "auto-session": { "branch": "main", "commit": "292492ab7af4bd8b9e37e28508bc8ce995722fd5" }, + "copilot.lua": { "branch": "master", "commit": "5bde2cfe01f049f522eeb8b52c5c723407db8bdf" }, + "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, + "gruvbox.nvim": { "branch": "main", "commit": "5e0a460d8e0f7f669c158dedd5f9ae2bcac31437" }, + "harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" }, + "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, + "lualine.nvim": { "branch": "master", "commit": "3946f0122255bc377d14a59b27b609fb3ab25768" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "b1d9a914b02ba5660f1e272a03314b31d4576fe2" }, + "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, + "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, + "nvim-lspconfig": { "branch": "master", "commit": "2010fc6ec03e2da552b4886fceb2f7bc0fc2e9c0" }, + "nvim-treesitter": { "branch": "main", "commit": "81aec1e45d58b587fa055a938cd6642c6b94ba4d" }, + "nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" }, + "oil.nvim": { "branch": "master", "commit": "7e1cd7703ff2924d7038476dcbc04b950203b902" }, + "outline.nvim": { "branch": "main", "commit": "6b62f73a6bf317531d15a7ae1b724e85485d8148" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, + "telescope.nvim": { "branch": "master", "commit": "0294ae3eafe662c438addb8692d9c98ef73a983e" }, + "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, + "toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" }, + "undotree": { "branch": "master", "commit": "0f1c9816975b5d7f87d5003a19c53c6fd2ff6f7f" }, + "vim-flog": { "branch": "master", "commit": "665b16ac8915f746bc43c9572b4581a5e9047216" }, + "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" }, + "vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" }, + "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } +} diff --git a/nvim/.config/nvim/lua/plugins/lsp/completion.lua b/nvim/.config/nvim/lua/lsp.lua similarity index 69% rename from nvim/.config/nvim/lua/plugins/lsp/completion.lua rename to nvim/.config/nvim/lua/lsp.lua index 2c3d71d..00ccf97 100644 --- a/nvim/.config/nvim/lua/plugins/lsp/completion.lua +++ b/nvim/.config/nvim/lua/lsp.lua @@ -1,3 +1,10 @@ +-- +-- +-- Completion config +-- +-- + + vim.o.completeopt = "menu,menuone,noinsert,fuzzy" vim.api.nvim_set_keymap("i", "", "", { noremap = true }) @@ -49,3 +56,38 @@ vim.api.nvim_create_autocmd('LspAttach', { vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, { desc = "Go to definition" }) end, }) + + +-- +-- +-- Diagnostics config +-- +-- + + +vim.diagnostic.config({ + virtual_text = true, + severity_sort = true, +}) + +vim.api.nvim_create_autocmd("CursorHold", { + callback = function() + local width = vim.api.nvim_win_get_width(0); + + vim.diagnostic.open_float(nil, { + scope = "cursor", + close_events = { "BufLeave", "CursorMoved", "InsertEnter", "FocusLost" }, + source = true, + relative = "editor", + width = 40, + focusable = false, + focused = false, + border = "rounded", + title = "Diagnostics", + header = "", + title_pos = "center", + offset_x = width, + offset_y = -1, + }) + end, +}) diff --git a/nvim/.config/nvim/lua/plugins/alpha.lua b/nvim/.config/nvim/lua/plugins/alpha.lua index 9a71b73..ba76e26 100644 --- a/nvim/.config/nvim/lua/plugins/alpha.lua +++ b/nvim/.config/nvim/lua/plugins/alpha.lua @@ -85,18 +85,22 @@ end -- -- -vim.pack.add({ "https://github.com/goolord/alpha-nvim" }) +return { + "goolord/alpha-nvim", + lazy = false, + config = function() + local dashboard = require("alpha.themes.dashboard") + dashboard.section.header.val = get_random_image() + dashboard.section.buttons.val = { + dashboard.button('n', ' New file', ':ene startinsert '), + dashboard.button('r', ' Recent files', ':Telescope oldfiles '), + dashboard.button('f', '󰥨 Find file', ':Telescope find_files '), + dashboard.button('g', '󰱼 Find text', ':Telescope live_grep '), + dashboard.button('p', ' Open project', ':Telescope session-lens search_session'), + dashboard.button('l', '󰒲 Lazy', ':Lazy'), + dashboard.button('q', ' Quit', ':qa') + } -local dashboard = require("alpha.themes.dashboard") -dashboard.section.header.val = get_random_image() -dashboard.section.buttons.val = { - dashboard.button('n', ' New file', ':ene startinsert '), - dashboard.button('r', ' Recent files', ':Telescope oldfiles '), - dashboard.button('f', '󰥨 Find file', ':Telescope find_files '), - dashboard.button('g', '󰱼 Find text', ':Telescope live_grep '), - dashboard.button('p', ' Open project', ':Telescope session-lens search_session'), - dashboard.button('l', '󰒲 Lazy', ':Lazy'), - dashboard.button('q', ' Quit', ':qa') + require("alpha").setup(dashboard.opts) + end } - -require("alpha").setup(dashboard.opts) diff --git a/nvim/.config/nvim/lua/plugins/autosession.lua b/nvim/.config/nvim/lua/plugins/autosession.lua index f8f267e..f9085e3 100644 --- a/nvim/.config/nvim/lua/plugins/autosession.lua +++ b/nvim/.config/nvim/lua/plugins/autosession.lua @@ -1,30 +1,32 @@ -vim.pack.add({ - -- dependencies - { src = "https://github.com/nvim-lua/plenary.nvim" }, - { src = "https://github.com/nvim-telescope/telescope.nvim" }, - { src = "https://github.com/nvim-lualine/lualine.nvim" }, - -- plugin - { src = "https://github.com/rmagatti/auto-session" } -}) - -require("auto-session").setup({ - suppressed_dirs = { "~/", "~/Projects", "~/Downloads", "/" }, - log_level = "error", - auto_save_enabled = false, - session_lens = { - picker = "telescope", - load_on_setup = true, - mappings = { - delete_session = { "i", "" }, - alternate_session = { "i", "" }, - copy_session = { "i", "" }, - }, +return { + "https://github.com/rmagatti/auto-session", + -- TODO: This forces telescope to be loaded non-lazily. Fix this + dependencies = { + "https://github.com/nvim-lua/plenary.nvim", + "https://github.com/nvim-telescope/telescope.nvim", + "https://github.com/nvim-lualine/lualine.nvim" }, -}) - -vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions" - -vim.keymap.set('n', 'ss', 'AutoSession save', { desc = "Save" }) -vim.keymap.set('n', 'sd', 'AutoSession delete', { desc = "Delete" }) - -vim.keymap.set('n', 'fs', 'Telescope session-lens', { desc = "Session-lens" }) + init = function() + vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions" + end, + keys = { + { 'ss', 'AutoSession save', desc = "Save" }, + { 'sd', 'AutoSession delete', desc = "Delete" }, + { 'fs', 'Telescope session-lens', desc = "Session" } + }, + opts = { + suppressed_dirs = { "~/", "~/Projects", "~/Downloads", "/" }, + log_level = "error", + auto_save_enabled = false, + session_lens = { + picker = "telescope", + load_on_setup = true, + mappings = { + delete_session = { "i", "" }, + alternate_session = { "i", "" }, + copy_session = { "i", "" }, + }, + } + }, + lazy = false, +} diff --git a/nvim/.config/nvim/lua/plugins/copilot.lua b/nvim/.config/nvim/lua/plugins/copilot.lua index 147fab0..ba08d9c 100644 --- a/nvim/.config/nvim/lua/plugins/copilot.lua +++ b/nvim/.config/nvim/lua/plugins/copilot.lua @@ -1,13 +1,13 @@ --- vim.pack.add({ "https://github.com/zbirenbaum/copilot.lua" }) --- --- require("copilot").setup({ --- suggestion = { --- auto_trigger = true, --- keymap = { --- accept = "", --- } --- } --- }) --- --- -- TODO: Disable on startup. For some reason the below line gives an error --- -- vim.cmd(':Copilot disable') +return { + "zbirenbaum/copilot.lua", + cmd = "Copilot", + opts = { + suggestion = { + enabled = true, + auto_trigger = true, + keymap = { + accept = "" + } + } + } +} diff --git a/nvim/.config/nvim/lua/plugins/git.lua b/nvim/.config/nvim/lua/plugins/git.lua index cab52b4..de50214 100644 --- a/nvim/.config/nvim/lua/plugins/git.lua +++ b/nvim/.config/nvim/lua/plugins/git.lua @@ -1,6 +1,13 @@ -vim.pack.add({ - { src = "https://github.com/tpope/vim-fugitive" }, - { src = "https://github.com/rbong/vim-flog" } -}) - -vim.keymap.set("n", "gs", vim.cmd.Git) +return { + { + "https://github.com/tpope/vim-fugitive", + keys = { { "gs", vim.cmd.Git } } + }, + { + "https://github.com/rbong/vim-flog", + dependencies = { + "https://github.com/tpope/vim-fugitive" + }, + cmd = "Flog" + } +} diff --git a/nvim/.config/nvim/lua/plugins/harpoon.lua b/nvim/.config/nvim/lua/plugins/harpoon.lua index 9370469..80003f4 100644 --- a/nvim/.config/nvim/lua/plugins/harpoon.lua +++ b/nvim/.config/nvim/lua/plugins/harpoon.lua @@ -1,21 +1,37 @@ -vim.pack.add({ - { - src = "https://github.com/nvim-lua/plenary.nvim" +return +{ + "ThePrimeagen/harpoon", + branch = "harpoon2", + dependencies = { "nvim-lua/plenary.nvim" }, + keys = { + { "a", function() require("harpoon"):list():add() end }, + { "", function() require("harpoon").ui:toggle_quick_menu(require("harpoon"):list()) end }, + { "", function() require("harpoon"):list():select(1) end }, + { "", function() require("harpoon"):list():select(2) end }, + { "", function() require("harpoon"):list():select(3) end }, + { "", function() require("harpoon"):list():select(4) end }, }, - { - src = "https://github.com/ThePrimeagen/harpoon", - version = "harpoon2", - } -}) + config = true +} -local harpoon = require("harpoon") - -harpoon:setup() - -vim.keymap.set("n", "a", function() harpoon:list():add() end) -vim.keymap.set("n", "", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end) - -vim.keymap.set("n", "", function() harpoon:list():select(1) end) -vim.keymap.set("n", "", function() harpoon:list():select(2) end) -vim.keymap.set("n", "", function() harpoon:list():select(3) end) -vim.keymap.set("n", "", function() harpoon:list():select(4) end) +-- vim.pack.add({ +-- { +-- src = "https://github.com/nvim-lua/plenary.nvim" +-- }, +-- { +-- src = "https://github.com/ThePrimeagen/harpoon", +-- version = "harpoon2", +-- } +-- }) +-- +-- local harpoon = require("harpoon") +-- +-- harpoon:setup() +-- +-- vim.keymap.set("n", "a", function() harpoon:list():add() end) +-- vim.keymap.set("n", "", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end) +-- +-- vim.keymap.set("n", "", function() harpoon:list():select(1) end) +-- vim.keymap.set("n", "", function() harpoon:list():select(2) end) +-- vim.keymap.set("n", "", function() harpoon:list():select(3) end) +-- vim.keymap.set("n", "", function() harpoon:list():select(4) end) diff --git a/nvim/.config/nvim/lua/plugins/init.lua b/nvim/.config/nvim/lua/plugins/init.lua deleted file mode 100644 index e1c8df6..0000000 --- a/nvim/.config/nvim/lua/plugins/init.lua +++ /dev/null @@ -1,10 +0,0 @@ -local plugin_dir = vim.fn.stdpath('config') .. '/lua/plugins' -local plugin_files = vim.fn.glob(plugin_dir .. '/*', false, true) - -for _, file in ipairs(plugin_files) do - local plugin_name = vim.fn.fnamemodify(file, ':t:r') - - if plugin_name ~= "init" then - require('plugins.' .. plugin_name) - end -end diff --git a/nvim/.config/nvim/lua/plugins/lsp/diagnostics.lua b/nvim/.config/nvim/lua/plugins/lsp/diagnostics.lua deleted file mode 100644 index 7244c7a..0000000 --- a/nvim/.config/nvim/lua/plugins/lsp/diagnostics.lua +++ /dev/null @@ -1,26 +0,0 @@ -vim.diagnostic.config({ - virtual_text = true, - severity_sort = true, -}) - -vim.api.nvim_create_autocmd("CursorHold", { - callback = function() - local width = vim.api.nvim_win_get_width(0); - - vim.diagnostic.open_float(nil, { - scope = "cursor", - close_events = { "BufLeave", "CursorMoved", "InsertEnter", "FocusLost" }, - source = true, - relative = "editor", - width = 40, - focusable = false, - focused = false, - border = "rounded", - title = "Diagnostics", - header = "", - title_pos = "center", - offset_x = width, - offset_y = -1, - }) - end, -}) diff --git a/nvim/.config/nvim/lua/plugins/lsp/init.lua b/nvim/.config/nvim/lua/plugins/lsp/init.lua deleted file mode 100644 index 76bc827..0000000 --- a/nvim/.config/nvim/lua/plugins/lsp/init.lua +++ /dev/null @@ -1,3 +0,0 @@ -require("plugins.lsp.completion") -require("plugins.lsp.diagnostics") -require("plugins.lsp.plugin") diff --git a/nvim/.config/nvim/lua/plugins/lsp/plugin.lua b/nvim/.config/nvim/lua/plugins/lsp/plugin.lua deleted file mode 100644 index 04469dd..0000000 --- a/nvim/.config/nvim/lua/plugins/lsp/plugin.lua +++ /dev/null @@ -1,8 +0,0 @@ -vim.pack.add({ - { src = "https://github.com/neovim/nvim-lspconfig" }, - { src = "https://github.com/mason-org/mason-lspconfig.nvim" }, - { src = "https://github.com/mason-org/mason.nvim" }, -}) - -require("mason").setup() -require("mason-lspconfig").setup() diff --git a/nvim/.config/nvim/lua/plugins/lualine.lua b/nvim/.config/nvim/lua/plugins/lualine.lua index 512c779..fdc3bab 100644 --- a/nvim/.config/nvim/lua/plugins/lualine.lua +++ b/nvim/.config/nvim/lua/plugins/lualine.lua @@ -1,36 +1,36 @@ -vim.pack.add({ - { src = "https://github.com/nvim-tree/nvim-web-devicons" }, - { src = "https://github.com/nvim-lualine/lualine.nvim" } -}) - -require("lualine").setup({ - options = { theme = 'gruvbox_dark' }, - extensions = { - 'mason', - 'toggleterm' - }, - sections = { - lualine_c = { - { - "filename", - path = 1, - shorting_target = 50, - } +return { + 'nvim-lualine/lualine.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' }, + event = "VeryLazy", + opts = { + options = { theme = 'gruvbox_dark' }, + extensions = { + 'mason', + 'toggleterm' }, - lualine_b = { 'branch' }, - lualine_x = { 'encoding' }, - lualine_y = { - { - function() - local reg = vim.fn.reg_recording() - if reg ~= "" then - return "Recording @" .. reg - else - return "" - end - end, - color = { fg = "#fabd2f" } + sections = { + lualine_c = { + { + "filename", + path = 1, + shorting_target = 50, + } + }, + lualine_b = { 'branch' }, + lualine_x = { 'encoding' }, + lualine_y = { + { + function() + local reg = vim.fn.reg_recording() + if reg ~= "" then + return "Recording @" .. reg + else + return "" + end + end, + color = { fg = "#fabd2f" } + } } } } -}) +} diff --git a/nvim/.config/nvim/lua/plugins/luasnip/init.lua b/nvim/.config/nvim/lua/plugins/luasnip/init.lua index 08fc7c6..1b01dc2 100644 --- a/nvim/.config/nvim/lua/plugins/luasnip/init.lua +++ b/nvim/.config/nvim/lua/plugins/luasnip/init.lua @@ -1,2 +1,21 @@ -require("plugins.luasnip.plugin") -require("plugins.luasnip.completion-integration") +return { + "https://github.com/rafamadriz/friendly-snippets", + dependencies = { "https://github.com/L3MON4D3/LuaSnip" }, + event = "InsertEnter", + config = function() + local loader = require("luasnip.loaders.from_lua") + loader.lazy_load({ paths = { "./snippets" } }) + + -- TODO: Find out how to enable autosnippets without having the status line disappear + require("luasnip").config.set_config({ + -- enable_autosnippets = true, + store_selection_keys = "v" + }) + + vim.keymap.set({ "i", "s" }, "", function() require("luasnip").jump(1) end, { silent = true }) + vim.keymap.set({ "i", "s" }, "", function() require("luasnip").jump(-1) end, { silent = true }) + + -- TODO: Is this keymap used? + vim.keymap.set({ "i" }, "", function() require("luasnip").expand() end, { silent = true }) + end +} diff --git a/nvim/.config/nvim/lua/plugins/luasnip/plugin.lua b/nvim/.config/nvim/lua/plugins/luasnip/plugin.lua deleted file mode 100644 index 2d4bc08..0000000 --- a/nvim/.config/nvim/lua/plugins/luasnip/plugin.lua +++ /dev/null @@ -1,19 +0,0 @@ -vim.pack.add({ - { src = "https://github.com/rafamadriz/friendly-snippets" }, - { src = "https://github.com/L3MON4D3/LuaSnip" } -}) - -local loader = require("luasnip.loaders.from_lua") -loader.lazy_load({ paths = { "./snippets" } }) - --- TODO: Find out how to enable autosnippets without having the status line disappear -require("luasnip").config.set_config({ - -- enable_autosnippets = true, - store_selection_keys = "v" -}) - -vim.keymap.set({ "i", "s" }, "", function() require("luasnip").jump(1) end, { silent = true }) -vim.keymap.set({ "i", "s" }, "", function() require("luasnip").jump(-1) end, { silent = true }) - --- TODO: Is this keymap used? -vim.keymap.set({ "i" }, "", function() require("luasnip").expand() end, { silent = true }) diff --git a/nvim/.config/nvim/lua/plugins/mason.lua b/nvim/.config/nvim/lua/plugins/mason.lua new file mode 100644 index 0000000..b2e6ac9 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/mason.lua @@ -0,0 +1,9 @@ +return { + "mason-org/mason-lspconfig.nvim", + dependencies = { + { "mason-org/mason.nvim", config = true }, + "neovim/nvim-lspconfig", + }, + event = "VeryLazy", + config = true, +} diff --git a/nvim/.config/nvim/lua/plugins/noice.lua b/nvim/.config/nvim/lua/plugins/noice.lua index a66afb5..6c7eb84 100644 --- a/nvim/.config/nvim/lua/plugins/noice.lua +++ b/nvim/.config/nvim/lua/plugins/noice.lua @@ -1,41 +1,40 @@ -vim.pack.add({ - { src = "https://github.com/MunifTanjim/nui.nvim" }, - { src = "https://github.com/folke/noice.nvim" } -}) - - -require("noice").setup({ - messages = { enabled = false }, - views = { - history = { - { event = "lsp", kind = "" }, - }, - cmdline_popup = { - backend = "popup", - relative = "editor", - position = { - row = -1, - col = "0%" +return { + "https://github.com/folke/noice.nvim", + dependencies = { "https://github.com/MunifTanjim/nui.nvim" }, + event = "VeryLazy", + opts = { + messages = { enabled = false }, + views = { + history = { + { event = "lsp", kind = "" }, }, - border = { style = "none" } - }, - cmdline_popupmenu = { - relative = "editor", - position = { - row = -2, - col = "0%" + cmdline_popup = { + backend = "popup", + relative = "editor", + position = { + row = -1, + col = "0%" + }, + border = { style = "none" } + }, + cmdline_popupmenu = { + relative = "editor", + position = { + row = -2, + col = "0%" + } + }, + mini = { + border = { style = "rounded" }, + position = { + row = -2, + col = "100%", + }, + size = { + max_width = 50, + max_height = 4, + }, } - }, - mini = { - border = { style = "rounded" }, - position = { - row = -3, - col = "100%", - }, - size = { - max_width = 50, - max_height = 4, - }, } } -}) +} diff --git a/nvim/.config/nvim/lua/plugins/oil.lua b/nvim/.config/nvim/lua/plugins/oil.lua index da2c38c..d6c6a38 100644 --- a/nvim/.config/nvim/lua/plugins/oil.lua +++ b/nvim/.config/nvim/lua/plugins/oil.lua @@ -1,4 +1,11 @@ -vim.pack.add({"https://github.com/stevearc/oil.nvim"}) -require("oil").setup() - -vim.keymap.set("n", "-", "Oil", { desc = "Open parent directory" }) +return { + "stevearc/oil.nvim", + dependencies = { + "nvim-tree/nvim-web-devicons" + }, + lazy = false, -- Make sure oil is available for, e.g., `nvim .` + init = function() + vim.keymap.set("n", "-", "Oil", { desc = "Open parent directory" }) + end, + config = true +} diff --git a/nvim/.config/nvim/lua/plugins/outline.lua b/nvim/.config/nvim/lua/plugins/outline.lua index 6c58140..17f0279 100644 --- a/nvim/.config/nvim/lua/plugins/outline.lua +++ b/nvim/.config/nvim/lua/plugins/outline.lua @@ -1,12 +1,15 @@ -vim.pack.add({ "https://github.com/hedyhli/outline.nvim" }) -require("outline").setup({ - outline_window = { - focus_on_open = false, +return { + "https://github.com/hedyhli/outline.nvim", + keys = { + { "l", "Outline", desc = "Toggle Outline" } }, - symbol_folding = { - autofold_depth = 3, - markers = { '', '' }, - }, -}) - -vim.keymap.set("n", "l", "Outline", { desc = "Toggle Outline" }) + opts = { + outline_window = { + focus_on_open = false, + }, + symbol_folding = { + autofold_depth = 3, + markers = { '', '' }, + }, + } +} diff --git a/nvim/.config/nvim/lua/plugins/surround.lua b/nvim/.config/nvim/lua/plugins/surround.lua index 06f2587..9915ac4 100644 --- a/nvim/.config/nvim/lua/plugins/surround.lua +++ b/nvim/.config/nvim/lua/plugins/surround.lua @@ -1 +1,4 @@ -vim.pack.add({"https://github.com/tpope/vim-surround"}) +return { + "https://github.com/tpope/vim-surround", + event = "InsertEnter" +} diff --git a/nvim/.config/nvim/lua/plugins/telescope.lua b/nvim/.config/nvim/lua/plugins/telescope.lua index 386db20..3e0fd2e 100644 --- a/nvim/.config/nvim/lua/plugins/telescope.lua +++ b/nvim/.config/nvim/lua/plugins/telescope.lua @@ -1,25 +1,24 @@ -vim.pack.add({ - { src = "https://github.com/nvim-lua/plenary.nvim" }, - { src = "https://github.com/nvim-telescope/telescope.nvim" }, - { src = "https://github.com/nvim-telescope/telescope-ui-select.nvim" } -}) - -vim.pack.add({}) - -vim.keymap.set('n', 'ff', function() require("telescope.builtin").find_files() end, { desc = "Files" }) -vim.keymap.set('n', 'fg', function() require("telescope.builtin").live_grep() end, { desc = "grep" }) -vim.keymap.set('n', 'fa', function() require("telescope.builtin").find_files({ hidden = true }) end, - { desc = "All files" }) - -vim.keymap.set('n', 'fb', function() require("telescope.builtin").buffers() end, { desc = "Buffers" }) -vim.keymap.set('n', 'fh', function() require("telescope.builtin").help_tags() end, { desc = "Help tags" }) - -require("telescope").setup { - extensions = { - ["ui-select"] = { - require("telescope.themes").get_dropdown() - } - } +return { + "https://github.com/nvim-telescope/telescope.nvim", + dependencies = { + "https://github.com/nvim-lua/plenary.nvim", + "https://github.com/nvim-telescope/telescope-ui-select.nvim", + }, + cmd = { "Telescope" }, + keys = { + { "ff", function() require("telescope.builtin").find_files() end, desc = "Files" }, + { "fg", function() require("telescope.builtin").live_grep() end, desc = "grep" }, + { "fa", function() require("telescope.builtin").find_files({ hidden = true }) end, desc = "All files" }, + { "fb", function() require("telescope.builtin").buffers() end, desc = "Buffers" }, + { "fh", function() require("telescope.builtin").help_tags() end, desc = "Help tags" } + }, + config = function() + require("telescope").setup { + extensions = { + ["ui-select"] = { + require("telescope.themes").get_dropdown() + } + } + } + end } - -require("telescope").load_extension("ui-select") diff --git a/nvim/.config/nvim/lua/plugins/theme.lua b/nvim/.config/nvim/lua/plugins/theme.lua index 82e768f..2ce564f 100644 --- a/nvim/.config/nvim/lua/plugins/theme.lua +++ b/nvim/.config/nvim/lua/plugins/theme.lua @@ -1,11 +1,12 @@ -vim.pack.add({"https://github.com/ellisonleao/gruvbox.nvim"}) - -require("gruvbox").setup({ - contrast = "hard", - transparent_mode = true, -}) - -vim.cmd("colorscheme gruvbox") - --- TODO: Is this necessary? --- vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) +return { + "ellisonleao/gruvbox.nvim", + priority = 1000, + opts = { + contrast = "hard", + transparent_mode = true + }, + config = function(_, opts) + require("gruvbox").setup(opts) + vim.cmd("colorscheme gruvbox") + end +} diff --git a/nvim/.config/nvim/lua/plugins/todo-comments.lua b/nvim/.config/nvim/lua/plugins/todo-comments.lua index 6d4c092..85c48a3 100644 --- a/nvim/.config/nvim/lua/plugins/todo-comments.lua +++ b/nvim/.config/nvim/lua/plugins/todo-comments.lua @@ -1,8 +1,9 @@ -vim.pack.add({ - { src = "https://github.com/nvim-lua/plenary.nvim" }, - { src = "https://github.com/folke/todo-comments.nvim" } -}) - -require("todo-comments").setup() - -vim.keymap.set("n", "ft", ":TodoTelescope") +return { + "folke/todo-comments.nvim", + dependencies = { "nvim-lua/plenary.nvim" }, + event = "BufEnter", + keys = { + {"ft", ":TodoTelescope", desc = "TODOs"} + }, + config = true +} diff --git a/nvim/.config/nvim/lua/plugins/toggleterm.lua b/nvim/.config/nvim/lua/plugins/toggleterm.lua index abc555d..ee75386 100644 --- a/nvim/.config/nvim/lua/plugins/toggleterm.lua +++ b/nvim/.config/nvim/lua/plugins/toggleterm.lua @@ -1,6 +1,10 @@ -vim.pack.add({ "https://github.com/akinsho/toggleterm.nvim" }) - -require("toggleterm").setup({ - size = 30, - open_mapping = [[]] -}) +return { + "https://github.com/akinsho/toggleterm.nvim", + keys = { + "" + }, + opts = { + size = 30, + open_mapping = "" + } +} diff --git a/nvim/.config/nvim/lua/plugins/treesitter.lua b/nvim/.config/nvim/lua/plugins/treesitter.lua index ab187fc..1273e28 100644 --- a/nvim/.config/nvim/lua/plugins/treesitter.lua +++ b/nvim/.config/nvim/lua/plugins/treesitter.lua @@ -1,18 +1,23 @@ -vim.pack.add({ "https://github.com/nvim-treesitter/nvim-treesitter" }) - -require("nvim-treesitter.configs").setup({ - ensure_installed = { - "cpp", - "c", - "lua", - "vim", - "vimdoc", - "query" - }, - sync_install = false, - auto_install = true, - highlight = { - enable = true, - additional_vim_regex_highlighting = { "latex" } +return { + "nvim-treesitter/nvim-treesitter", + branch = 'main', + lazy = false, -- This plugin does not support lazy loading + build = ":TSUpdate", + opts = { + ensure_installed = { + "cpp", + "c", + "python", + "rust", + "lua", + "markdown", + "vimdoc", + }, + auto_install = true, + highlight = { + enable = true, + -- TODO: Is this required? + additional_vim_regex_highlighting = { "latex" } -- Required for vimtex + } } -}) +} diff --git a/nvim/.config/nvim/lua/plugins/undotree.lua b/nvim/.config/nvim/lua/plugins/undotree.lua index e1b4695..aaa3cf5 100644 --- a/nvim/.config/nvim/lua/plugins/undotree.lua +++ b/nvim/.config/nvim/lua/plugins/undotree.lua @@ -1,3 +1,6 @@ -vim.pack.add({"https://github.com/mbbill/undotree"}) - -vim.keymap.set("n", "u", "UndotreeToggle", { desc = "Undotree" }) +return { + "https://github.com/mbbill/undotree", + keys = { + { "u", "UndotreeToggle", desc = "Undotree" } + } +} diff --git a/nvim/.config/nvim/lua/plugins/whichkey.lua b/nvim/.config/nvim/lua/plugins/whichkey.lua index 072599f..9cb1963 100644 --- a/nvim/.config/nvim/lua/plugins/whichkey.lua +++ b/nvim/.config/nvim/lua/plugins/whichkey.lua @@ -1,20 +1,26 @@ -vim.pack.add({ "https://github.com/folke/which-key.nvim" }) +return { + "https://github.com/folke/which-key.nvim", + init = function() + vim.o.timeout = true + vim.o.timeoutlen = 300 + end, + event = "VeryLazy", + opts = { + -- TODO: Add names for other nameless keymaps, e.g., + -- defaults = { + -- ["x"] = { name = "+Trouble" } + -- } + }, + config = function(_, opts) + require("which-key").setup(opts) -vim.o.timeout = true -vim.o.timeoutlen = 300 - --- TODO: Add names for other nameless keymaps -require("which-key").setup({ - -- defaults = { - -- ["x"] = { name = "+Trouble" } - -- } -}) - -require("which-key").add({ - { "d", group = "Debug" }, - { "f", group = "Find" }, - { "l", group = "LSP" }, - { "o", group = "Overseer" }, - { "s", group = "Session" }, - { "x", group = "Trouble" } -}) + require("which-key").add({ + { "d", group = "Debug" }, + { "f", group = "Find" }, + { "l", group = "LSP" }, + { "o", group = "Overseer" }, + { "s", group = "Session" }, + { "x", group = "Trouble" } + }) + end +} diff --git a/nvim/.config/nvim/lua/set.lua b/nvim/.config/nvim/lua/set.lua index f05ba41..06204cb 100644 --- a/nvim/.config/nvim/lua/set.lua +++ b/nvim/.config/nvim/lua/set.lua @@ -1,4 +1,5 @@ vim.g.mapleader = " " +vim.g.maplocalleader = "\\" vim.opt.shiftwidth = 4 vim.opt.expandtab = true diff --git a/nvim/.config/nvim/nvim-pack-lock.json b/nvim/.config/nvim/nvim-pack-lock.json deleted file mode 100644 index c7c9829..0000000 --- a/nvim/.config/nvim/nvim-pack-lock.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "plugins": { - "LuaSnip": { - "rev": "3732756", - "src": "https://github.com/L3MON4D3/LuaSnip" - }, - "alpha-nvim": { - "rev": "3979b01", - "src": "https://github.com/goolord/alpha-nvim" - }, - "auto-session": { - "rev": "292492a", - "src": "https://github.com/rmagatti/auto-session" - }, - "copilot.lua": { - "rev": "5bde2cf", - "src": "https://github.com/zbirenbaum/copilot.lua" - }, - "dressing.nvim": { - "rev": "2d7c2db", - "src": "https://github.com/stevearc/dressing.nvim" - }, - "friendly-snippets": { - "rev": "572f566", - "src": "https://github.com/rafamadriz/friendly-snippets" - }, - "gruvbox.nvim": { - "rev": "5e0a460", - "src": "https://github.com/ellisonleao/gruvbox.nvim" - }, - "harpoon": { - "rev": "87b1a35", - "src": "https://github.com/ThePrimeagen/harpoon", - "version": "'harpoon2'" - }, - "lualine.nvim": { - "rev": "3946f01", - "src": "https://github.com/nvim-lualine/lualine.nvim" - }, - "mason-lspconfig.nvim": { - "rev": "d7b5feb", - "src": "https://github.com/mason-org/mason-lspconfig.nvim" - }, - "mason.nvim": { - "rev": "ad7146a", - "src": "https://github.com/mason-org/mason.nvim" - }, - "noice.nvim": { - "rev": "7bfd942", - "src": "https://github.com/folke/noice.nvim" - }, - "nui.nvim": { - "rev": "de74099", - "src": "https://github.com/MunifTanjim/nui.nvim" - }, - "nvim-lspconfig": { - "rev": "2010fc6", - "src": "https://github.com/neovim/nvim-lspconfig" - }, - "nvim-notify": { - "rev": "8701bec", - "src": "https://github.com/rcarriga/nvim-notify" - }, - "nvim-treesitter": { - "rev": "42fc28ba", - "src": "https://github.com/nvim-treesitter/nvim-treesitter" - }, - "nvim-web-devicons": { - "rev": "8dcb311", - "src": "https://github.com/nvim-tree/nvim-web-devicons" - }, - "oil.nvim": { - "rev": "7e1cd77", - "src": "https://github.com/stevearc/oil.nvim" - }, - "outline.nvim": { - "rev": "6b62f73", - "src": "https://github.com/hedyhli/outline.nvim" - }, - "overseer.nvim": { - "rev": "c77c78b", - "src": "https://github.com/stevearc/overseer.nvim", - "version": "'v1.6.0'" - }, - "plenary.nvim": { - "rev": "b9fd522", - "src": "https://github.com/nvim-lua/plenary.nvim" - }, - "quicker.nvim": { - "rev": "12a2291", - "src": "https://github.com/stevearc/quicker.nvim" - }, - "session-lens": { - "rev": "eae46b4", - "src": "https://github.com/rmagatti/session-lens" - }, - "snacks.nvim": { - "rev": "9a15b31", - "src": "https://github.com/folke/snacks.nvim" - }, - "sqlite.nvim": { - "rev": "a8466c8", - "src": "https://github.com/3rd/sqlite.nvim" - }, - "telescope-ui-select.nvim": { - "rev": "6e51d7d", - "src": "https://github.com/nvim-telescope/telescope-ui-select.nvim" - }, - "telescope.nvim": { - "rev": "0294ae3", - "src": "https://github.com/nvim-telescope/telescope.nvim" - }, - "time-tracker.nvim": { - "rev": "4127c4b", - "src": "https://github.com/3rd/time-tracker.nvim" - }, - "todo-comments.nvim": { - "rev": "411503d", - "src": "https://github.com/folke/todo-comments.nvim" - }, - "toggleterm.nvim": { - "rev": "9a88eae", - "src": "https://github.com/akinsho/toggleterm.nvim" - }, - "undotree": { - "rev": "0f1c981", - "src": "https://github.com/mbbill/undotree" - }, - "vim-flog": { - "rev": "665b16a", - "src": "https://github.com/rbong/vim-flog" - }, - "vim-fugitive": { - "rev": "61b51c0", - "src": "https://github.com/tpope/vim-fugitive" - }, - "vim-surround": { - "rev": "3d188ed", - "src": "https://github.com/tpope/vim-surround" - }, - "which-key.nvim": { - "rev": "3aab214", - "src": "https://github.com/folke/which-key.nvim" - } - } -} \ No newline at end of file