return { { "kylechui/nvim-surround", version = "*", -- Use for stability; omit to use `main` branch for the latest features event = "VeryLazy", config = function() require("nvim-surround").setup({ -- Configuration here, or leave empty to use defaults }) end }, { 'echasnovski/mini.pairs', version = '*' , event = "VeryLazy", config = function() require('mini.pairs').setup({}) end }, { 'echasnovski/mini.ai', version = '*' , }, { "nvim-neo-tree/neo-tree.nvim", branch = "v3.x", dependencies = { "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended "MunifTanjim/nui.nvim", -- "3rd/image.nvim", -- Optional image support in preview window: See `# Preview Mode` for more information }, config = function() vim.keymap.set("n", "e", function() vim.cmd [[Neotree reveal]] end, { desc = "Run Neotree" }) require'neo-tree'.setup { filesystem = { filtered_items = { hide_by_pattern = { "*.meta" } } } } end }, { 'MagicDuck/grug-far.nvim', config = function() require('grug-far').setup({ -- options, see Configuration section below -- there are no required options atm -- engine = 'ripgrep' is default, but 'astgrep' can be specified }); vim.keymap.set("n", "gf", function() vim.cmd [[GrugFar]] end, { desc = "GrugFar" }) end }, { "folke/flash.nvim", event = "VeryLazy", ---@type Flash.Config opts = {}, -- stylua: ignore }, { 'nvim-telescope/telescope.nvim', tag = '0.1.8', dependencies = { 'nvim-lua/plenary.nvim' }, config = function() local builtin = require('telescope.builtin') local utils = require('telescope.utils') -- generic vim.keymap.set('n', 'tl', builtin.live_grep, { desc = 'Telescope live grep' }) vim.keymap.set('n', 'td', builtin.lsp_document_symbols, { desc = 'Telescope document symbols' }) vim.keymap.set('n', 'tw', builtin.lsp_dynamic_workspace_symbols, { desc = 'Telescope dynamic workspace symbols' }) vim.keymap.set('n', 'th', builtin.help_tags, { desc = 'Telescope help tags' }) vim.keymap.set('n', 'to', builtin.oldfiles, { desc = 'Telescope oldfiles' }) vim.keymap.set('n', 'tt', function() vim.cmd [[TodoTelescope]] end, { desc = 'Telescope Todo' }) -- code inteligence vim.keymap.set('n', 'cd', builtin.diagnostics, { desc = 'Telescope diagnostics' }) vim.keymap.set('n', 'cr', builtin.lsp_references, { desc = 'Telescope lsp references' }) vim.keymap.set('n', 'cs', builtin.treesitter, { desc = 'Telescope treesitter' }) vim.keymap.set("n", "ct", function() vim.cmd [[Trouble diagnostics]] end, { desc = "Run Trouble Diagnostics" }) vim.keymap.set('n', 'cR', function() vim.lsp.buf.rename() end, {desc = "LSP Rename"}) -- file finding vim.keymap.set('n', 'pf', builtin.find_files, { desc = 'Telescope find in project' }) vim.keymap.set('n', 'ff', function() builtin.find_files({ cwd = utils.buffer_dir() }) end, { desc = 'Telescope find in buffer dir' }) -- something I'm too used to vim.keymap.set('n', 'fs', function() vim.cmd [[w]] end, { desc = 'Save' }) -- buffers vim.keymap.set('n', 'bb', builtin.buffers, { desc = 'Telescope buffers' }) vim.keymap.set('n', 'bd', function() vim.cmd [[Bd]] end, { desc = 'Save and close' }) vim.keymap.set('n', ']b', function() vim.cmd [[bnext]] end, {desc = 'Next buffer'}) vim.keymap.set('n', '[b', function() vim.cmd [[bprev]] end, {desc = 'Prev buffer'}) -- jump quicklist vim.keymap.set('n', ']c', function() vim.cmd [[cnext]] end, {desc = 'Next Quicklist'}) vim.keymap.set('n', '[c', function() vim.cmd [[cprev]] end, {desc = 'Prev Quicklist'}) end }, { "folke/trouble.nvim", opts = {}, -- for default options, refer to the configuration section for custom setup. cmd = "Trouble", }, { "aznhe21/actions-preview.nvim", config = function() vim.keymap.set({ "v", "n" }, "ca", require("actions-preview").code_actions, { desc = "Telescope code actions"}) end, }, { "famiu/bufdelete.nvim" }, { "yetone/avante.nvim", event = 'VeryLazy', lazy = false, dependencies = { "stevearc/dressing.nvim", "nvim-lua/plenary.nvim", "MunifTanjim/nui.nvim", }, opts = { provider = "dsv3", auto_suggestions_provider = "codestral", -- cursor_applying_provider = "yoqwen32", -- behaviour = { -- enable_cursor_planning_mode = true, -- enable cursor planning mode! -- }, file_selector = { provider = "telescope", provider_opts = {}, }, vendors = { -- ds dsv3 = { __inherited_from = "openai", api_key_name = "DEEPSEEK_API_KEY", endpoint = "https://api.deepseek.com", model = "deepseek-chat", }, -- 百炼 qwenr1 = { __inherited_from = "openai", api_key_name = "QWEN_API_KEY", endpoint = "https://dashscope.aliyuncs.com/compatible-mode/v1/", model = "deepseek-r1", disable_tools = true, }, qwenchat = { __inherited_from = "openai", api_key_name = "QWEN_API_KEY", endpoint = "https://dashscope.aliyuncs.com/compatible-mode/v1/", model = "deepseek-v3", disable_tools = true, }, qwenqwq32 = { __inherited_from = "openai", api_key_name = "QWEN_API_KEY", endpoint = "https://dashscope.aliyuncs.com/compatible-mode/v1/", model = "qwq-32b", disable_tools = true, }, -- yostar yor1 = { __inherited_from = "openai", api_key_name = "YOSTAR_API_KEY", endpoint = "https://litellm.yostar.net", model = "DeepSeek-R1", disable_tools = true, }, yochat = { __inherited_from = "openai", api_key_name = "YOSTAR_API_KEY", endpoint = "https://litellm.yostar.net", model = "DeepSeek-V3", disable_tools = true, max_completion_tokens = 12288, }, yoqwq32 = { __inherited_from = "openai", api_key_name = "YOSTAR_API_KEY", endpoint = "https://litellm.yostar.net", model = "qwq-32b", disable_tools = true, }, codestral = { __inherited_from = 'openai', api_key_name = 'CODESTRAL_API_KEY', endpoint = 'https://codestral.mistral.ai/v1', model = 'codestral-latest' } }, } }, { 'hat0uma/csvview.nvim', config = function() vim.api.nvim_create_autocmd('FileType', { pattern = 'csv', command = 'CsvViewEnable' }) require('csvview').setup{ parser = {comments = {"#", "//"}}, keymaps = { -- Text objects for selecting fields textobject_field_inner = { "if", mode = { "o", "x" } }, textobject_field_outer = { "af", mode = { "o", "x" } }, -- Excel-like navigation: -- Use and to move horizontally between fields. -- Use and to move vertically between rows and place the cursor at the end of the field. -- Note: In terminals, you may need to enable CSI-u mode to use and . jump_next_field_end = { "", mode = { "n", "v" } }, jump_prev_field_end = { "", mode = { "n", "v" } }, jump_next_row = { "", mode = { "n", "v" } }, jump_prev_row = { "", mode = { "n", "v" } }, }, } end }, { 'tpope/vim-fugitive', config = function() vim.keymap.set('n', 'gs', ':Git', {desc = "Git Status"}) vim.keymap.set('n', 'gd', ':Git diff', {desc = "Git Diff"}) end } }