diff --git a/nvim/lua/configs/avante.lua b/nvim/lua/configs/avante.lua new file mode 100644 index 0000000..6c54185 --- /dev/null +++ b/nvim/lua/configs/avante.lua @@ -0,0 +1,14 @@ +return { + provider = "openrouter", -- Recommend using Claude + vendors = { + ["openrouter"] = { + __inherited_from = "openai", + endpoint = "https://openrouter.ai/api/v1", + api_key_name = "OPENROUTER_API_KEY_AVANTE", + model = "anthropic/claude-3.5-sonnet", + temperature = 0, + max_tokens = 4096, + }, + }, + auto_suggestions_provider = "copilot", -- Since auto-suggestions are a high-frequency operation and therefore expensive, it is recommended to specify an inexpensive provider or even a free provider: copilot +} diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index da5633f..e28df42 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -1,143 +1,187 @@ return { - { - "stevearc/conform.nvim", - event = "BufWritePre", -- uncomment for format on save - opts = require "configs.conform", - }, + { + "stevearc/conform.nvim", + event = "BufWritePre", -- uncomment for format on save + opts = require("configs.conform"), + }, - -- These are some examples, uncomment them if you want to see them work! - { - "neovim/nvim-lspconfig", - config = function() - require "configs.lspconfig" - end, - }, + -- These are some examples, uncomment them if you want to see them work! + { + "neovim/nvim-lspconfig", + config = function() + require("configs.lspconfig") + end, + }, - { - "nvim-treesitter/nvim-treesitter", - opts = { - ensure_installed = { - "vim", - "lua", - "vimdoc", - "html", - "css", - "python", - "typescript", - "go", - }, - }, - }, - { - "tpope/vim-fugitive", - cmd = { "Git", "G", "Gdiffsplit", "Gvdiffsplit", "Gwrite", "Gread", "Ggrep", "GMove", "GDelete", "GBrowse" }, - keys = { - { "gs", "vertical Git" }, - desc = "Open Fugitive", - }, - opts = { - enabled = true, - }, - dependencies = { - "tpope/vim-rhubarb", - }, - }, - { "tpope/vim-rhubarb", opts = { enabled = true } }, - { - "folke/zen-mode.nvim", - cmd = "ZenMode", - opts = { - plugins = { - kitty = { - enabled = true, - font = "+4", - }, - }, - }, - }, - { - "folke/trouble.nvim", - opts = { - auto_close = true, - auto_open = false, - warn_no_results = false, - modes = { - symbols = { -- Configure symbols mode - win = { - type = "split", -- split window - relative = "win", -- relative to current window - position = "right", -- right side - size = 0.15, -- 30% of the window - }, - }, - }, - }, -- for default options, refer to the configuration section for custom setup. - cmd = "Trouble", - keys = { - { - "xx", - "Trouble diagnostics toggle", - desc = "Diagnostics (Trouble)", - }, - { - "xX", - "Trouble diagnostics toggle filter.buf=0", - desc = "Buffer Diagnostics (Trouble)", - }, - { - "cs", - "Trouble symbols toggle focus=false", - desc = "Symbols (Trouble)", - }, - { - "cl", - "Trouble lsp toggle focus=false win.position=right", - desc = "LSP Definitions / references / ... (Trouble)", - }, - { - "xL", - "Trouble loclist toggle", - desc = "Location List (Trouble)", - }, - { - "xQ", - "Trouble qflist toggle", - desc = "Quickfix List (Trouble)", - }, - }, - }, - { - "folke/noice.nvim", - event = "VeryLazy", - opts = { - lsp = { - -- override markdown rendering so that **cmp** and other plugins use **Treesitter** - override = { - ["vim.lsp.util.convert_input_to_markdown_lines"] = true, - ["vim.lsp.util.stylize_markdown"] = true, - ["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp - }, - }, - -- you can enable a preset for easier configuration - presets = { - bottom_search = true, -- use a classic bottom cmdline for search - command_palette = true, -- position the cmdline and popupmenu together - long_message_to_split = true, -- long messages will be sent to a split - inc_rename = false, -- enables an input dialog for inc-rename.nvim - lsp_doc_border = false, -- add a border to hover docs and signature help - }, - }, - }, - { - "knubie/vim-kitty-navigator", - enabled = true, - lazy = false, - build = { - "cp ./*.py ~/.config/kitty/", - }, - }, - { - "gfontenot/vim-xcode", - enabled = true, - }, + { + "nvim-treesitter/nvim-treesitter", + opts = { + ensure_installed = { + "vim", + "lua", + "vimdoc", + "html", + "css", + "python", + "typescript", + "go", + }, + }, + }, + { + "tpope/vim-fugitive", + cmd = { "Git", "G", "Gdiffsplit", "Gvdiffsplit", "Gwrite", "Gread", "Ggrep", "GMove", "GDelete", "GBrowse" }, + keys = { + { "gs", "vertical Git" }, + desc = "Open Fugitive", + }, + opts = { + enabled = true, + }, + dependencies = { + "tpope/vim-rhubarb", + }, + }, + { "tpope/vim-rhubarb", opts = { enabled = true } }, + { + "folke/zen-mode.nvim", + cmd = "ZenMode", + opts = { + plugins = { + kitty = { + enabled = true, + font = "+4", + }, + }, + }, + }, + { + "folke/trouble.nvim", + opts = { + auto_close = true, + auto_open = false, + warn_no_results = false, + modes = { + symbols = { -- Configure symbols mode + win = { + type = "split", -- split window + relative = "win", -- relative to current window + position = "left", -- right side + size = 0.20, -- 30% of the window + }, + }, + }, + }, -- for default options, refer to the configuration section for custom setup. + cmd = "Trouble", + keys = { + { + "xx", + "Trouble diagnostics toggle", + desc = "Diagnostics (Trouble)", + }, + { + "xX", + "Trouble diagnostics toggle filter.buf=0", + desc = "Buffer Diagnostics (Trouble)", + }, + { + "cs", + "Trouble symbols toggle focus=false", + desc = "Symbols (Trouble)", + }, + { + "cl", + "Trouble lsp toggle focus=false win.position=right", + desc = "LSP Definitions / references / ... (Trouble)", + }, + { + "xL", + "Trouble loclist toggle", + desc = "Location List (Trouble)", + }, + { + "xQ", + "Trouble qflist toggle", + desc = "Quickfix List (Trouble)", + }, + }, + }, + { + "folke/noice.nvim", + event = "VeryLazy", + opts = { + lsp = { + -- override markdown rendering so that **cmp** and other plugins use **Treesitter** + override = { + ["vim.lsp.util.convert_input_to_markdown_lines"] = true, + ["vim.lsp.util.stylize_markdown"] = true, + ["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp + }, + }, + -- you can enable a preset for easier configuration + presets = { + bottom_search = true, -- use a classic bottom cmdline for search + command_palette = true, -- position the cmdline and popupmenu together + long_message_to_split = true, -- long messages will be sent to a split + inc_rename = false, -- enables an input dialog for inc-rename.nvim + lsp_doc_border = false, -- add a border to hover docs and signature help + }, + }, + }, + { + "knubie/vim-kitty-navigator", + enabled = true, + lazy = false, + build = { + "cp ./*.py ~/.config/kitty/", + }, + }, + { + "gfontenot/vim-xcode", + enabled = true, + }, + { + "yetone/avante.nvim", + event = "VeryLazy", + lazy = false, + version = false, -- set this to "*" if you want to always pull the latest change, false to update on release + opts = require("configs.avante"), + -- if you want to build from source then do `make BUILD_FROM_SOURCE=true` + build = "make", + -- build = "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" -- for windows + dependencies = { + "stevearc/dressing.nvim", + "nvim-lua/plenary.nvim", + "MunifTanjim/nui.nvim", + --- The below dependencies are optional, + "hrsh7th/nvim-cmp", -- autocompletion for avante commands and mentions + "nvim-tree/nvim-web-devicons", -- or echasnovski/mini.icons + "zbirenbaum/copilot.lua", -- for providers='copilot' + { + -- support for image pasting + "HakonHarnes/img-clip.nvim", + event = "VeryLazy", + opts = { + -- recommended settings + default = { + embed_image_as_base64 = false, + prompt_for_file_name = false, + drag_and_drop = { + insert_mode = true, + }, + -- required for Windows users + use_absolute_path = true, + }, + }, + }, + { + -- Make sure to set this up properly if you have lazy=true + "MeanderingProgrammer/render-markdown.nvim", + opts = { + file_types = { "markdown", "Avante" }, + }, + ft = { "markdown", "Avante" }, + }, + }, + }, }