return { { "neovim/nvim-lspconfig", dependencies = { "williamboman/mason.nvim", "williamboman/mason-lspconfig.nvim", "j-hui/fidget.nvim", "folke/neodev.nvim", }, }, { "ray-x/lsp_signature.nvim", event = "BufRead", config = function() require "lsp_signature".setup() end, }, { "hrsh7th/nvim-cmp", dependencies = { "hrsh7th/cmp-nvim-lsp", "L3MON4D3/LuaSnip", "saadparwaiz1/cmp_luasnip", "hrsh7th/cmp-nvim-lua", "hrsh7th/cmp-buffer", "hrsh7th/cmp-path", "rafamadriz/friendly-snippets" }, }, { "jay-babu/mason-null-ls.nvim", event = { "BufReadPre", "BufNewFile" }, dependencies = { "williamboman/mason.nvim", "nvimtools/none-ls.nvim", }, config = function() end, }, { "nvimtools/none-ls.nvim" }, { "OXY2DEV/markview.nvim", lazy = false, }, -- syntax highlighting { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" }, 'nvim-treesitter/nvim-treesitter-context', { "nvim-treesitter/nvim-treesitter-textobjects", dependencies = { "nvim-treesitter" }, }, -- fzf Telescope { "nvim-telescope/telescope.nvim", branch = "0.1.x", dependencies = { "nvim-lua/plenary.nvim" } }, { "nvim-telescope/telescope-fzf-native.nvim", build = "make", }, -- debugging "mfussenegger/nvim-dap", "jay-babu/mason-nvim-dap.nvim", { "rcarriga/nvim-dap-ui", tag = "v4.0.0", dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" }, }, { "theHamsta/nvim-dap-virtual-text", opts = {} }, "nvim-telescope/telescope-dap.nvim", -- git "lewis6991/gitsigns.nvim", "echasnovski/mini.nvim", { 'kazhala/close-buffers.nvim', config = true }, "editorconfig/editorconfig-vim", { "nacro90/numb.nvim", opts = {} }, { "kylechui/nvim-surround", opts = {} }, { "phaazon/hop.nvim", event = "BufRead", opts = {} }, { "ThePrimeagen/harpoon", branch = "harpoon2", dependencies = { "nvim-lua/plenary.nvim" }, init = function() local harpoon = require("harpoon") harpoon:setup() end }, -- misc editing "lambdalisue/suda.vim", "tpope/vim-sleuth", "mbbill/undotree", { "windwp/nvim-autopairs", opts = {} }, { "mg979/vim-visual-multi", config = function() vim.cmd([[ let g:VM_leader='m' let g:VM_maps['Find Under'] = '' ]]) end }, { "windwp/nvim-ts-autotag", opts = { filetypes = { 'html', 'javascript', 'typescript', 'javascriptreact', 'typescriptreact', 'svelte', 'vue', 'tsx', 'jsx', 'rescript', 'xml', 'php', 'markdown', 'astro', 'glimmer', 'handlebars', 'hbs', "rust" }, }, }, { "kevinhwang91/nvim-bqf", event = { "BufRead", "BufNew" }, opts = { auto_enable = true, preview = { win_height = 12, win_vheight = 12, delay_syntax = 80, border_chars = { "┃", "┃", "━", "━", "┏", "┓", "┗", "┛", "█" }, }, func_map = { vsplit = "", ptogglemode = "z,", stoggleup = "", }, filter = { fzf = { action_for = { ["ctrl-s"] = "split" }, extra_opts = { "--bind", "ctrl-o:toggle-all", "--prompt", "> " }, }, }, } }, "nvim-tree/nvim-web-devicons", { "lukas-reineke/indent-blankline.nvim", init = function() require("ibl").setup({ indent = { tab_char = "│", char = "┊", }, }) end }, { "folke/which-key.nvim", config = function() local wk = require("which-key") wk.setup { -- popup_mappings = { -- scroll_down = "", -- scroll_up = "", -- }, -- window = { -- border = "single", -- }, } end }, "rebelot/heirline.nvim", { "akinsho/toggleterm.nvim", version = "*", opts = { direction = "float", float_opts = { border = "curved" }, } }, { "karb94/neoscroll.nvim", event = "WinScrolled", opts = { mappings = { "", "", "", "", "", "", "zt", "zz", "zb" }, hide_cursor = true, stop_eof = true, use_local_scrolloff = false, respect_scrolloff = false, cursor_scrolls_alone = true, easing_function = nil, pre_hook = nil, post_hook = nil, } }, { "folke/todo-comments.nvim", event = "BufRead", }, { 'numToStr/Comment.nvim', opts = {} }, { "SmiteshP/nvim-navbuddy", dependencies = { "neovim/nvim-lspconfig", "SmiteshP/nvim-navic", "MunifTanjim/nui.nvim", "numToStr/Comment.nvim", "nvim-telescope/telescope.nvim" }, opts = { window = { border = "rounded", }, } }, { "gelguy/wilder.nvim", config = function() -- local wilder = require("wilder") -- wilder.setup({ -- modes = {":", "/", "?"}, -- }) -- wilder.set_option("renderer", wilder.popupmenu_renderer({ -- pumblend = 50, -- })) vim.cmd('call wilder#setup({"modes": [":", "/", "?"]})') vim.cmd( 'call wilder#set_option("renderer", wilder#popupmenu_renderer({"highlighter": wilder#basic_highlighter(), "left": [ " ", wilder#popupmenu_devicons(), ], "right": [ " ", wilder#popupmenu_scrollbar(), ], "pumblend": 20}))') vim.cmd( 'call wilder#set_option("renderer", wilder#popupmenu_renderer(wilder#popupmenu_border_theme({"highlighter": wilder#basic_highlighter(), "min_width": "100%", "min_height": "50%", "reverse": 0, "highlights": {"border": "Normal",},"border": "rounded"})))') end, }, { "nvim-neo-tree/neo-tree.nvim", branch = "v2.x", dependencies = { "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons", "MunifTanjim/nui.nvim", }, }, -- lenguage specific -- scala { "scalameta/nvim-metals", dependencies = { "nvim-lua/plenary.nvim", }, ft = { "scala", "sbt", "java" }, opts = function() local metals_config = require("metals").bare_config() metals_config.on_attach = function(client, bufnr) -- your on_attach function end return metals_config end, config = function(self, metals_config) local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true }) vim.api.nvim_create_autocmd("FileType", { pattern = self.ft, callback = function() require("metals").initialize_or_attach(metals_config) end, group = nvim_metals_group, }) end }, -- org { "nvim-orgmode/orgmode", lazy = false, dependencies = { "nvim-treesitter/nvim-treesitter", "hrsh7th/nvim-cmp", }, config = function() require("orgmode").setup({}) require('nvim-treesitter.configs').setup({ ensure_installed = 'all', ignore_install = { 'org' }, }) end }, { "akinsho/org-bullets.nvim" }, -- f# { "ionide/Ionide-vim" }, -- go { "joerdav/templ.vim" }, { "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 }, -- csv 'cameron-wags/rainbow_csv.nvim', -- rust { "saecki/crates.nvim", tag = "v0.3.0", dependencies = { "nvim-lua/plenary.nvim" }, }, { 'mrcjkb/rustaceanvim', version = '^5', lazy = false, }, -- diff { "julienvincent/hunk.nvim", cmd = { "DiffEditor" }, config = function() require("hunk").setup() end, }, -- slint { "slint-ui/vim-slint" }, -- zig "ziglang/zig.vim", -- glsl "tikhomirov/vim-glsl", -- java "mfussenegger/nvim-jdtls", -- latex "lervag/vimtex", "let-def/texpresso.vim", -- themes "xiyaowong/transparent.nvim", "savq/melange-nvim", }