return { 'williamboman/mason.nvim', 'williamboman/mason-lspconfig.nvim', 'neovim/nvim-lspconfig', { 'github/copilot.vim', branch = 'release' }, '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' } }, 'nvim-tree/nvim-tree.lua', 'nvim-tree/nvim-web-devicons', 'navarasu/onedark.nvim', 'simrat39/rust-tools.nvim', { "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 }, { "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 = false, -- 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", config = function() local configs = require("nvim-treesitter.configs") configs.setup({ ensure_installed = { "c", "cpp", "lua", "vim", "vimdoc", "query", "elixir", "heex", "javascript", "html", "http", "json" }, sync_install = false, highlight = { enable = true }, indent = { enable = true }, }) end }, { "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 = {} }, '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 } }