From c41927eb3cdded3bb41f7001191306826c2a7fc9 Mon Sep 17 00:00:00 2001 From: jaredgoldman Date: Tue, 9 Apr 2024 10:34:07 -0400 Subject: [PATCH] feat: add harpoon clear, wip harpoon maybe add --- lazy-lock.json | 151 ++++++++++++++++++++------ lua/config/conform.lua | 1 + lua/config/fterm.lua | 7 +- lua/config/harpoon.lua | 58 ++++++---- lua/config/mason.lua | 41 +++---- lua/config/nvim-tree.lua | 3 - lua/keymaps.lua | 122 ++++++++++----------- lua/plugins.lua | 227 ++++++++++++++++++++------------------- 8 files changed, 362 insertions(+), 248 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 90bf7dc..1a400ed 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,32 +1,123 @@ { - "FTerm.nvim": { "branch": "master", "commit": "d1320892cc2ebab472935242d9d992a2c9570180" }, - "LuaSnip": { "branch": "master", "commit": "8ae1dedd988eb56441b7858bd1e8554dfadaa46d" }, - "catppuccin": { "branch": "main", "commit": "aebe43db9cb26e1c70fc5b2fd4158169c405e720" }, - "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, - "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, - "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, - "conform.nvim": { "branch": "master", "commit": "9d5ba06d6ee7418c674f498634617416d15b6239" }, - "copilot.vim": { "branch": "release", "commit": "7097b09e52621a97d11f254e04de5e5a0f26e5f5" }, - "dashboard-nvim": { "branch": "master", "commit": "681300934baf36f6184ca41f0b26aed22056d4ee" }, - "harpoon": { "branch": "harpoon2", "commit": "da326d0438ac68dee9b6b62a734be940a8bd8405" }, - "lazy.nvim": { "branch": "main", "commit": "31ddbea7c10b6920c9077b66c97951ca8682d5c8" }, - "lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" }, - "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "44509689b9bf3984d729cc264aacb31cb7f41668" }, - "mason.nvim": { "branch": "main", "commit": "751b1fcbf3d3b783fcf8d48865264a9bcd8f9b10" }, - "monokai.nvim": { "branch": "master", "commit": "b8bd44d5796503173627d7a1fc51f77ec3a08a63" }, - "nvim-autopairs": { "branch": "master", "commit": "4f41e5940bc0443fdbe5f995e2a596847215cd2a" }, - "nvim-cmp": { "branch": "main", "commit": "ce16de5665c766f39c271705b17fff06f7bcb84f" }, - "nvim-comment": { "branch": "main", "commit": "e9ac16ab056695cad6461173693069ec070d2b23" }, - "nvim-dap": { "branch": "master", "commit": "405df1dcc2e395ab5173a9c3d00e03942c023074" }, - "nvim-lspconfig": { "branch": "master", "commit": "9619e53d3f99f0ca4ea3b88f5d97fce703131820" }, - "nvim-tree.lua": { "branch": "master", "commit": "81eb8d519233c105f30dc0a278607e62b20502fd" }, - "nvim-treesitter": { "branch": "master", "commit": "11a3584b81c3249d2b6279305aee1c7ad273985a" }, - "nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" }, - "nvim-web-devicons": { "branch": "master", "commit": "93ddac6966d5d3416f96df728d7b92e27aaa4452" }, - "plenary.nvim": { "branch": "master", "commit": "8aad4396840be7fc42896e3011751b7609ca4119" }, - "telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" }, - "themery.nvim": { "branch": "main", "commit": "1005a58801276d29c4b1e11244cf7631250f9143" }, - "vim-maximizer": { "branch": "master", "commit": "2e54952fe91e140a2e69f35f22131219fcd9c5f1" } + "FTerm.nvim": { + "branch": "master", + "commit": "d1320892cc2ebab472935242d9d992a2c9570180" + }, + "LuaSnip": { + "branch": "master", + "commit": "8ae1dedd988eb56441b7858bd1e8554dfadaa46d" + }, + "catppuccin": { + "branch": "main", + "commit": "aebe43db9cb26e1c70fc5b2fd4158169c405e720" + }, + "cmp-buffer": { + "branch": "main", + "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" + }, + "cmp-cmdline": { + "branch": "main", + "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" + }, + "cmp-nvim-lsp": { + "branch": "main", + "commit": "5af77f54de1b16c34b23cba810150689a3a90312" + }, + "cmp-path": { + "branch": "main", + "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" + }, + "conform.nvim": { + "branch": "master", + "commit": "9d5ba06d6ee7418c674f498634617416d15b6239" + }, + "copilot.vim": { + "branch": "release", + "commit": "7097b09e52621a97d11f254e04de5e5a0f26e5f5" + }, + "dashboard-nvim": { + "branch": "master", + "commit": "681300934baf36f6184ca41f0b26aed22056d4ee" + }, + "harpoon": { + "branch": "harpoon2", + "commit": "da326d0438ac68dee9b6b62a734be940a8bd8405" + }, + "lazy.nvim": { + "branch": "main", + "commit": "31ddbea7c10b6920c9077b66c97951ca8682d5c8" + }, + "lspkind.nvim": { + "branch": "master", + "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" + }, + "lualine.nvim": { + "branch": "master", + "commit": "0a5a66803c7407767b799067986b4dc3036e1983" + }, + "mason-lspconfig.nvim": { + "branch": "main", + "commit": "44509689b9bf3984d729cc264aacb31cb7f41668" + }, + "mason.nvim": { + "branch": "main", + "commit": "751b1fcbf3d3b783fcf8d48865264a9bcd8f9b10" + }, + "monokai.nvim": { + "branch": "master", + "commit": "b8bd44d5796503173627d7a1fc51f77ec3a08a63" + }, + "nvim-autopairs": { + "branch": "master", + "commit": "4f41e5940bc0443fdbe5f995e2a596847215cd2a" + }, + "nvim-cmp": { + "branch": "main", + "commit": "ce16de5665c766f39c271705b17fff06f7bcb84f" + }, + "nvim-comment": { + "branch": "main", + "commit": "e9ac16ab056695cad6461173693069ec070d2b23" + }, + "nvim-dap": { + "branch": "master", + "commit": "405df1dcc2e395ab5173a9c3d00e03942c023074" + }, + "nvim-lspconfig": { + "branch": "master", + "commit": "9619e53d3f99f0ca4ea3b88f5d97fce703131820" + }, + "nvim-tree.lua": { + "branch": "master", + "commit": "81eb8d519233c105f30dc0a278607e62b20502fd" + }, + "nvim-treesitter": { + "branch": "master", + "commit": "11a3584b81c3249d2b6279305aee1c7ad273985a" + }, + "nvim-ts-autotag": { + "branch": "main", + "commit": "531f48334c422222aebc888fd36e7d109cb354cd" + }, + "nvim-web-devicons": { + "branch": "master", + "commit": "93ddac6966d5d3416f96df728d7b92e27aaa4452" + }, + "plenary.nvim": { + "branch": "master", + "commit": "8aad4396840be7fc42896e3011751b7609ca4119" + }, + "telescope.nvim": { + "branch": "master", + "commit": "6312868392331c9c0f22725041f1ec2bef57c751" + }, + "themery.nvim": { + "branch": "main", + "commit": "1005a58801276d29c4b1e11244cf7631250f9143" + }, + "vim-maximizer": { + "branch": "master", + "commit": "2e54952fe91e140a2e69f35f22131219fcd9c5f1" + } } + diff --git a/lua/config/conform.lua b/lua/config/conform.lua index b8bacfe..2c87367 100644 --- a/lua/config/conform.lua +++ b/lua/config/conform.lua @@ -4,6 +4,7 @@ require("conform").setup({ python = { "isort", "black" }, javascript = { { "prettierd", "prettier" } }, json = { { "prettierd", "prettier" } }, + markdown = { { "marksman", "prettierd", "prettier" } }, }, }) diff --git a/lua/config/fterm.lua b/lua/config/fterm.lua index 373dfb9..350169d 100644 --- a/lua/config/fterm.lua +++ b/lua/config/fterm.lua @@ -2,10 +2,9 @@ local api = vim.api local fterm = require("FTerm") fterm.setup({ - blend = 25 + blend = 25, }) -- Commands -api.nvim_create_user_command('FTermToggle', fterm.toggle, { bang = true }) -api.nvim_create_user_command('FTermClose', fterm.close, { bang = true }) - +api.nvim_create_user_command("FTermToggle", fterm.toggle, { bang = true }) +api.nvim_create_user_command("FTermClose", fterm.close, { bang = true }) diff --git a/lua/config/harpoon.lua b/lua/config/harpoon.lua index 1b06d23..c5d79af 100644 --- a/lua/config/harpoon.lua +++ b/lua/config/harpoon.lua @@ -1,27 +1,49 @@ local api = vim.api local harpoon = require("harpoon") harpoon.setup({}) - -api.nvim_create_user_command('HarpoonAdd', function() harpoon:list():add() end, { bang = true }) -api.nvim_create_user_command('HarpoonTogglePrev', function() harpoon:list():prev() end, { bang = true }) -api.nvim_create_user_command('HarpoonToggleNext', function() harpoon:list():next() end, { bang = true }) - -- basic telescope configuration local conf = require("telescope.config").values local function toggle_telescope(harpoon_files) - local file_paths = {} - for _, item in ipairs(harpoon_files.items) do - table.insert(file_paths, item.value) - end + local file_paths = {} + for _, item in ipairs(harpoon_files.items) do + table.insert(file_paths, item.value) + end - require("telescope.pickers").new({}, { - prompt_title = "Harpoon", - finder = require("telescope.finders").new_table({ - results = file_paths, - }), - previewer = conf.file_previewer({}), - sorter = conf.generic_sorter({}), - }):find() + require("telescope.pickers") + .new({}, { + prompt_title = "Harpoon", + finder = require("telescope.finders").new_table({ + results = file_paths, + }), + previewer = conf.file_previewer({}), + sorter = conf.generic_sorter({}), + }) + :find() end -api.nvim_create_user_command('HarpoonUI', function() toggle_telescope(harpoon:list()) end, { bang = true }) +local function maybe_remove_add() + local bufnr = api.nvim_get_current_buf() + local mark = harpoon:mark(bufnr) + if mark then + harpoon:list():add() + else + harpoon:list():remove() + end +end + +-- Commands +api.nvim_create_user_command("HarpoonClear", function() + harpoon:list():clear() +end, { bang = true }) +api.nvim_create_user_command("HarpoonToggleFile", function() + maybe_remove_add() +end, { bang = true }) +api.nvim_create_user_command("HarpoonTogglePrev", function() + harpoon:list():prev() +end, { bang = true }) +api.nvim_create_user_command("HarpoonToggleNext", function() + harpoon:list():next() +end, { bang = true }) +api.nvim_create_user_command("HarpoonUI", function() + toggle_telescope(harpoon:list()) +end, { bang = true }) diff --git a/lua/config/mason.lua b/lua/config/mason.lua index 381dba1..704c894 100644 --- a/lua/config/mason.lua +++ b/lua/config/mason.lua @@ -1,24 +1,25 @@ -- Mason -require('mason').setup({ - ui = { - icons = { - package_installed = "✓", - package_pending = "➜", - package_uninstalled = "✗" - } - } +require("mason").setup({ + ui = { + icons = { + package_installed = "✓", + package_pending = "➜", + package_uninstalled = "✗", + }, + }, }) -- A list of servers to automatically install if they're not already installed -require('mason-lspconfig').setup({ - ensure_installed = { - 'cssls', - 'cssmodules_ls', - 'graphql', - 'html', - 'intelephense', - 'tailwindcss', - 'tsserver', - 'jsonls', - 'lua_ls', - }, +require("mason-lspconfig").setup({ + ensure_installed = { + "cssls", + "cssmodules_ls", + "graphql", + "html", + "intelephense", + "tailwindcss", + "tsserver", + "jsonls", + "lua_ls", + "marksman", + }, }) diff --git a/lua/config/nvim-tree.lua b/lua/config/nvim-tree.lua index 86cc36c..c7afcd0 100644 --- a/lua/config/nvim-tree.lua +++ b/lua/config/nvim-tree.lua @@ -8,7 +8,4 @@ require("nvim-tree").setup({ renderer = { group_empty = true, }, - filters = { - dotfiles = true, - }, }) diff --git a/lua/keymaps.lua b/lua/keymaps.lua index b200517..81618d8 100644 --- a/lua/keymaps.lua +++ b/lua/keymaps.lua @@ -2,67 +2,69 @@ local keymap = vim.api.nvim_set_keymap local opts = { noremap = true, silent = true } local mappings = { - n = { - -- highlighting - ["nh"] = ":nohl", - -- move between buffers - [""] = "h", - [""] = "j", - [""] = "k", - [""] = "l", - -- open and close buggers - ["sv"] = "s", - ["sh"] = "v", - ["se"] = "=", - ["sx"] = ":close", - -- nvim-tree - ["e"] = ":NvimTreeToggle", - ["cf"] = ":NvimTreeCollapse", - -- LSP - ["ls"] = ":lspstop", - ["lo"] = ":lspstart", - -- Telescope - ["ff"] = "Telescope find_files", - ["fw"] = "Telescope live_grep", - ["fc"] = "Telescope grep_string", - ["th"] = "Themery", - ["sm"] = ":MaximizerToggle", - -- FTerm - ["h"] = "FTermToggle", - -- Harpoon - ["a"] = "HarpoonAdd", - [""] = "HarpoonUI", - -- Formating - ["fm"] = "Format", - }, - x = { - [""] = ":move '>+1gv-gv", - [""] = ":move '<-2gv-gv", - }, - i = { - [""] = { 'copilot#Accept("")', expr = true }, - [""] = "", - }, - t = { - ["A-l"] = "FTermClose", - }, + n = { + -- highlighting + ["nh"] = ":nohl", + -- move between buffers + [""] = "h", + [""] = "j", + [""] = "k", + [""] = "l", + -- open and close buggers + ["sv"] = "s", + ["sh"] = "v", + ["se"] = "=", + ["sx"] = ":close", + -- nvim-tree + ["e"] = ":NvimTreeFindFileToggle", + ["cf"] = ":NvimTreeCollapseKeepBuffers", + -- LSP + ["ls"] = ":lspstop", + ["lo"] = ":lspstart", + -- Telescope + ["ff"] = "Telescope find_files", + ["fw"] = "Telescope live_grep", + ["fc"] = "Telescope grep_string", + ["th"] = "Themery", + ["sm"] = ":MaximizerToggle", + -- FTerm + ["h"] = "FTermToggle", + -- Harpoon + ["a"] = "HarpoonAdd", + [""] = "HarpoonUI", + ["c"] = "HarpoonClear", + -- Formating + ["fm"] = "Format", + }, + x = { + [""] = ":move '>+1gv-gv", + [""] = ":move '<-2gv-gv", + }, + i = { + [""] = { 'copilot#Accept("")', expr = true }, + [""] = "", + ["C-BS"] = "HarpoonRemove" + }, + t = { + ["C-h"] = ":FTermClose", + }, } for mode, mode_mappings in pairs(mappings) do - for key, mapping in pairs(mode_mappings) do - if type(mapping) == "function" then - -- For direct Lua function calls; ensure your function returns a string command - keymap(mode, key, "lua " .. mapping() .. "", opts) - elseif type(mapping) == "table" and mapping.expr then - -- For expression mappings, like for copilot - local expr_opts = vim.tbl_extend("force", opts, { expr = true }) - keymap(mode, key, mapping[1], expr_opts) - elseif type(mapping) == "table" then - -- For mappings that have their options specified directly - keymap(mode, key, mapping[1], mapping[2] or opts) - else - -- For simple string command mappings - keymap(mode, key, mapping, opts) - end - end + for key, mapping in pairs(mode_mappings) do + if type(mapping) == "function" then + -- For direct Lua function calls; ensure your function returns a string command + keymap(mode, key, "lua " .. mapping() .. "", opts) + elseif type(mapping) == "table" and mapping.expr then + -- For expression mappings, like for copilot + local expr_opts = vim.tbl_extend("force", opts, { expr = true }) + keymap(mode, key, mapping[1], expr_opts) + elseif type(mapping) == "table" then + -- For mappings that have their options specified directly + keymap(mode, key, mapping[1], mapping[2] or opts) + else + -- For simple string command mappings + keymap(mode, key, mapping, opts) + end + end end diff --git a/lua/plugins.lua b/lua/plugins.lua index 1af401a..3e180a5 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -1,24 +1,24 @@ local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or 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, - }) + 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) require("lazy").setup({ - { - "nvimdev/dashboard-nvim", - event = "VimEnter", - opts = function() - local logo = [[ + { + "nvimdev/dashboard-nvim", + event = "VimEnter", + opts = function() + local logo = [[ ██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z ██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z ██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z @@ -27,17 +27,17 @@ require("lazy").setup({ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ]] - logo = string.rep("\n", 8) .. logo .. "\n\n" + logo = string.rep("\n", 8) .. logo .. "\n\n" - local opts = { - theme = "doom", - hide = { - -- this is taken care of by lualine - -- enabling this messes up the actual laststatus setting after loading a file - statusline = false, - }, - config = { - header = vim.split(logo, "\n"), + local opts = { + theme = "doom", + hide = { + -- this is taken care of by lualine + -- enabling this messes up the actual laststatus setting after loading a file + statusline = false, + }, + config = { + header = vim.split(logo, "\n"), -- stylua: ignore center = { -- { action = LazyVim.telescope("files"), desc = " Find File", icon = " ", key = "f" }, @@ -50,97 +50,98 @@ require("lazy").setup({ { action = "Lazy", desc = " Lazy", icon = "󰒲 ", key = "l" }, { action = "qa", desc = " Quit", icon = " ", key = "q" }, }, - footer = function() - local stats = require("lazy").stats() - local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) - return { - "⚡ Neovim loaded " .. stats.loaded .. "/" .. stats.count .. " plugins in " .. ms .. "ms", - } - end, - }, - } + footer = function() + local stats = require("lazy").stats() + local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100) + return { + "⚡ Neovim loaded " .. stats.loaded .. "/" .. stats.count .. " plugins in " .. ms .. "ms", + } + end, + }, + } - for _, button in ipairs(opts.config.center) do - button.desc = button.desc .. string.rep(" ", 43 - #button.desc) - button.key_format = " %s" - end + for _, button in ipairs(opts.config.center) do + button.desc = button.desc .. string.rep(" ", 43 - #button.desc) + button.key_format = " %s" + end - -- close Lazy and re-open when the dashboard is ready - if vim.o.filetype == "lazy" then - vim.cmd.close() - vim.api.nvim_create_autocmd("User", { - pattern = "DashboardLoaded", - callback = function() - require("lazy").show() - end, - }) - end + -- close Lazy and re-open when the dashboard is ready + if vim.o.filetype == "lazy" then + vim.cmd.close() + vim.api.nvim_create_autocmd("User", { + pattern = "DashboardLoaded", + callback = function() + require("lazy").show() + end, + }) + end - return opts - end, - }, - "tanvirtin/monokai.nvim", - { - "onsails/lspkind.nvim", - event = { "VimEnter" }, - }, - { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, - -- Auto-completion engine - { - "hrsh7th/nvim-cmp", - dependencies = { "lspkind.nvim" }, - config = function() - require("config.nvim-cmp") - end, - }, - { "hrsh7th/cmp-nvim-lsp", dependencies = { "nvim-cmp" } }, - { "hrsh7th/cmp-buffer", dependencies = { "nvim-cmp" } }, -- buffer auto-completion - { "hrsh7th/cmp-path", dependencies = { "nvim-cmp" } }, -- path auto-completion - { "hrsh7th/cmp-cmdline", dependencies = { "nvim-cmp" } }, -- cmdline auto-completion - -- Code snippet engine - { - "L3MON4D3/LuaSnip", - version = "v2.*", - }, - "williamboman/mason.nvim", - "williamboman/mason-lspconfig.nvim", - "neovim/nvim-lspconfig", - "nvim-tree/nvim-tree.lua", - version = "*", - lazy = false, - dependencies = { - "nvim-tree/nvim-web-devicons", - }, - { - "nvim-telescope/telescope.nvim", - tag = "0.1.6", - dependencies = { "nvim-lua/plenary.nvim" }, - }, - "zaldih/themery.nvim", - "terrortylor/nvim-comment", - "szw/vim-maximizer", - { - "nvim-lualine/lualine.nvim", - dependencies = { "nvim-tree/nvim-web-devicons" }, - }, - "numToStr/FTerm.nvim", - "github/copilot.vim", - "nvim-lua/plenary.nvim", - { - "ThePrimeagen/harpoon", - branch = "harpoon2", - requires = { { "nvim-lua/plenary.nvim" } }, - }, - { - "windwp/nvim-autopairs", - event = "InsertEnter", - config = true, - }, - "windwp/nvim-ts-autotag", - "nvim-treesitter/nvim-treesitter", - "mfussenegger/nvim-dap", - { - "stevearc/conform.nvim", - opts = {}, - }, + return opts + end, + }, + "tanvirtin/monokai.nvim", + { + "onsails/lspkind.nvim", + event = { "VimEnter" }, + }, + { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, + -- Auto-completion engine + { + "hrsh7th/nvim-cmp", + dependencies = { "lspkind.nvim" }, + config = function() + require("config.nvim-cmp") + end, + }, + { "hrsh7th/cmp-nvim-lsp", dependencies = { "nvim-cmp" } }, + { "hrsh7th/cmp-buffer", dependencies = { "nvim-cmp" } }, -- buffer auto-completion + { "hrsh7th/cmp-path", dependencies = { "nvim-cmp" } }, -- path auto-completion + { "hrsh7th/cmp-cmdline", dependencies = { "nvim-cmp" } }, -- cmdline auto-completion + -- Code snippet engine + { + "L3MON4D3/LuaSnip", + version = "v2.*", + }, + "williamboman/mason.nvim", + "williamboman/mason-lspconfig.nvim", + "neovim/nvim-lspconfig", + "nvim-tree/nvim-tree.lua", + version = "*", + lazy = false, + dependencies = { + "nvim-tree/nvim-web-devicons", + }, + { + "nvim-telescope/telescope.nvim", + tag = "0.1.6", + dependencies = { "nvim-lua/plenary.nvim" }, + }, + "zaldih/themery.nvim", + "terrortylor/nvim-comment", + "szw/vim-maximizer", + { + "nvim-lualine/lualine.nvim", + dependencies = { "nvim-tree/nvim-web-devicons" }, + }, + "numToStr/FTerm.nvim", + "github/copilot.vim", + "nvim-lua/plenary.nvim", + { + "ThePrimeagen/harpoon", + branch = "harpoon2", + requires = { { "nvim-lua/plenary.nvim" } }, + }, + { + "windwp/nvim-autopairs", + event = "InsertEnter", + config = true, + }, + "windwp/nvim-ts-autotag", + "nvim-treesitter/nvim-treesitter", + "mfussenegger/nvim-dap", + { + "stevearc/conform.nvim", + opts = {}, + }, + "f-person/git-blame.nvim", })