return { 'williamboman/mason.nvim', 'williamboman/mason-lspconfig.nvim', 'neovim/nvim-lspconfig', { "smjonas/inc-rename.nvim", config = function() require("inc_rename").setup() end, }, 'lvimuser/lsp-inlayhints.nvim', { "zbirenbaum/copilot.lua", cmd = "Copilot", event = "InsertEnter", config = function() require("copilot").setup({ panel = { enabled = true, auto_refresh = true, }, suggestion = { enabled = true, auto_trigger = true, accept = false, -- disable built-in keymapping }, filetypes = { markdown = true } }) end, }, 'hrsh7th/nvim-cmp', 'hrsh7th/cmp-nvim-lsp', 'hrsh7th/cmp-nvim-lua', 'hrsh7th/cmp-nvim-lsp-signature-help', 'hrsh7th/cmp-vsnip', 'hrsh7th/cmp-path', 'hrsh7th/cmp-buffer', 'hrsh7th/vim-vsnip', { 'nvim-lualine/lualine.nvim', dependencies = { 'nvim-tree/nvim-web-devicons' }, config = function() require('lualine').setup { options = { icons_enabled = true, theme = 'auto', component_separators = { left = '', right = '' }, section_separators = { left = '', right = '' }, disabled_filetypes = { statusline = {}, winbar = {}, }, ignore_focus = {}, always_divide_middle = false, globalstatus = false, refresh = { statusline = 1000, tabline = 1000, winbar = 1000, } }, sections = { lualine_a = { 'mode' }, lualine_b = { 'branch', 'diff', 'diagnostics' }, lualine_c = { 'filename' }, lualine_x = { 'encoding', 'fileformat', 'filetype', 'filename' }, lualine_y = { 'progress' }, lualine_z = { 'location' } }, inactive_sections = { lualine_a = {}, lualine_b = {}, lualine_c = {}, lualine_x = { 'filename', 'location' }, lualine_y = {}, lualine_z = {} }, tabline = {}, winbar = {}, inactive_winbar = {}, extensions = {} } end }, 'nvim-tree/nvim-tree.lua', 'nvim-tree/nvim-web-devicons', 'navarasu/onedark.nvim', 'simrat39/rust-tools.nvim', { "ray-x/go.nvim", dependencies = { -- optional packages "ray-x/guihua.lua", "neovim/nvim-lspconfig", "nvim-treesitter/nvim-treesitter", }, config = function() require("go").setup() end, event = { "CmdlineEnter" }, ft = { "go", 'gomod' }, build = ':lua require("go.install").update_all_sync()' -- if you need to install/update all binaries }, { "ellisonleao/glow.nvim", config = function() require("glow").setup() end }, { "willothy/nvim-cokeline", dependencies = { "nvim-lua/plenary.nvim", -- Required for v0.4.0+ "kyazdani42/nvim-web-devicons", -- If you want devicons "stevearc/resession.nvim" -- Optional, for persistent history }, config = true }, { 'saadparwaiz1/cmp_luasnip' }, ({ "L3MON4D3/LuaSnip", version = "v2.*", run = "make install_jsregexp" }), { 'nvim-lua/plenary.nvim' }, { 'ThePrimeagen/harpoon' }, { 'nvim-telescope/telescope.nvim', config = function() require('telescope').load_extension('aerial') end }, { 'LukasPietzschmann/telescope-tabs', requires = { 'nvim-telescope/telescope.nvim' }, config = function() require 'telescope-tabs'.setup { -- Your custom config :^) } end }, { "nvim-telescope/telescope-file-browser.nvim", dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" } }, { "ThePrimeagen/refactoring.nvim", requires = { { "nvim-lua/plenary.nvim" }, { "nvim-treesitter/nvim-treesitter" }, }, }, { 'junegunn/fzf', run = ":call fzf#install()" }, { 'junegunn/fzf.vim' }, { 'rmagatti/goto-preview', config = function() require('goto-preview').setup {} end }, { "NeogitOrg/neogit", dependencies = { "nvim-lua/plenary.nvim", "nvim-telescope/telescope.nvim", "sindrets/diffview.nvim", }, config = true }, { 'mg979/vim-visual-multi' }, { 'rhysd/git-messenger.vim' }, { 'sindrets/diffview.nvim' }, { 'nvimdev/dashboard-nvim', event = 'VimEnter', config = function() require('dashboard').setup { -- config } end, dependencies = { { 'nvim-tree/nvim-web-devicons' } } }, { 'kevinhwang91/nvim-ufo', dependencies = 'kevinhwang91/promise-async', config = function() require('ufo').setup({ provider_selector = function(bufnr, filetype, buftype) return { 'treesitter', 'indent' } end }) end }, { 'stevearc/oil.nvim', opts = {}, -- Optional dependencies dependencies = { "nvim-tree/nvim-web-devicons" }, }, { 'stevearc/aerial.nvim', opts = {}, dependencies = { "nvim-treesitter/nvim-treesitter", "nvim-tree/nvim-web-devicons" }, }, { "rest-nvim/rest.nvim", dependencies = { { "nvim-lua/plenary.nvim" } }, config = function() require("rest-nvim").setup({ -- Open request results in a horizontal split result_split_horizontal = false, -- Keep the http file buffer above|left when split horizontal|vertical result_split_in_place = false, -- Skip SSL verification, useful for unknown certificates skip_ssl_verification = true, -- Encode URL before making request encode_url = true, -- Highlight request on run highlight = { enabled = true, timeout = 150, }, result = { -- toggle showing URL, HTTP info, headers at top the of result window show_url = true, -- show the generated curl command in case you want to launch -- the same request via the terminal (can be verbose) show_curl_command = false, show_http_info = true, show_headers = true, -- executables or functions for formatting response body [optional] -- set them to false if you want to disable them formatters = { json = "jq", html = function(body) return vim.fn.system({ "tidy", "-i", "-q", "-" }, body) end }, }, -- Jump to request line on run jump_to_request = false, env_file = '.env', custom_dynamic_variables = {}, yank_dry_run = true, }) end }, { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", }, { "nvim-treesitter/nvim-treesitter-textobjects", after = "nvim-treesitter", requires = "nvim-treesitter/nvim-treesitter", }, { "folke/noice.nvim", event = "VeryLazy", opts = { -- add any options here }, dependencies = { "MunifTanjim/nui.nvim", "rcarriga/nvim-notify", plug } }, { "folke/todo-comments.nvim", dependencies = { "nvim-lua/plenary.nvim" }, opts = { -- your configuration comes here -- or leave it empty to use the default settings -- refer to the configuration section below } }, { "folke/trouble.nvim", dependencies = { "nvim-tree/nvim-web-devicons" }, opts = { -- your configuration comes here -- or leave it empty to use the default settings -- refer to the configuration section below }, }, { 'numToStr/Comment.nvim', opts = { -- add any options here }, lazy = false, }, 'jiangmiao/auto-pairs', { 'luochen1990/rainbow' }, { "lukas-reineke/indent-blankline.nvim", main = "ibl", opts = {}, config = function() local highlight = { "RainbowRed", "RainbowYellow", "RainbowBlue", "RainbowOrange", "RainbowGreen", "RainbowViolet", "RainbowCyan", } local hooks = require "ibl.hooks" -- create the highlight groups in the highlight setup hook, so they are reset -- every time the colorscheme changes hooks.register(hooks.type.HIGHLIGHT_SETUP, function() vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" }) vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" }) vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" }) vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" }) vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" }) vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" }) vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" }) end) require("ibl").setup { indent = { highlight = highlight } } end }, 'tpope/vim-surround', 'tpope/vim-sleuth', 'nmac427/guess-indent.nvim', { "SmiteshP/nvim-navic", dependencies = { "neovim/nvim-lspconfig" }, }, { "folke/which-key.nvim", event = "VeryLazy", init = function() vim.o.timeout = true vim.o.timeoutlen = 300 end, opts = { -- your configuration comes here -- or leave it empty to use the default settings -- refer to the configuration section below } }, 'folke/neodev.nvim', { 'vladdoster/remember.nvim', config = [[ require('remember') ]] }, { -- Adds git related signs to the gutter, as well as utilities for managing changes 'lewis6991/gitsigns.nvim', opts = { -- See `:help gitsigns.txt` signs = { add = { text = '+' }, change = { text = '~' }, delete = { text = '_' }, topdelete = { text = '‾' }, changedelete = { text = '~' }, }, on_attach = function(bufnr) vim.keymap.set('n', 'hp', require('gitsigns').preview_hunk, { buffer = bufnr, desc = 'Preview git hunk' }) -- don't override the built-in and fugitive keymaps local gs = package.loaded.gitsigns vim.keymap.set({ 'n', 'v' }, ']c', function() if vim.wo.diff then return ']c' end vim.schedule(function() gs.next_hunk() end) return '' end, { expr = true, buffer = bufnr, desc = 'Jump to next hunk' }) vim.keymap.set({ 'n', 'v' }, '[c', function() if vim.wo.diff then return '[c' end vim.schedule(function() gs.prev_hunk() end) return '' end, { expr = true, buffer = bufnr, desc = 'Jump to previous hunk' }) end, }, }, { "ahmedkhalf/project.nvim", config = function() require("project_nvim").setup { -- your configuration comes here -- or leave it empty to use the default settings -- refer to the configuration section below } end }, { 'stevearc/conform.nvim', opts = {}, }, { 'rmagatti/auto-session', config = function() require("auto-session").setup { log_level = "error", auto_session_suppress_dirs = { "~/", "~/Projects", "~/Downloads", "/" }, } end }, { 'akinsho/toggleterm.nvim', version = "*", config = true }, { "epwalsh/obsidian.nvim", version = "*", -- lazy = true, -- ft = "markdown", dependencies = { "nvim-lua/plenary.nvim", }, opts = { workspaces = { { name = "personal", path = "~/Obsidian/notes/", }, }, }, }, { 'declancm/maximize.nvim', config = function() require('maximize').setup() end }, { -- https://github.com/aznhe21/actions-preview.nvim "aznhe21/actions-preview.nvim", config = function() end, }, }