-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
ed7f7b1
commit a0cd592
Showing
15 changed files
with
222 additions
and
321 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,55 +1,102 @@ | ||
---@type LazySpec | ||
return { | ||
"olimorris/codecompanion.nvim", | ||
cmd = { | ||
"CodeCompanion", | ||
"CodeCompanionChat", | ||
"CodeCompanionCmd", | ||
"CodeCompanionActions", | ||
}, | ||
"yetone/avante.nvim", | ||
version = false, | ||
build = "make", | ||
keys = { | ||
{ "<leader>cc", "<cmd>CodeCompanionChat toggle<CR>", desc = "Chat Toggle", mode = { "n", "x" } }, | ||
{ "<leader>cA", "<cmd>CodeCompanionChat add<CR>", desc = "Chat Add Selection", mode = "x" }, | ||
{ "<leader>ca", "<cmd>CodeCompanionActions<CR>", desc = "Chat Actions", mode = { "n", "x" } }, | ||
{ "<leader>cd", "<cmd>CodeCompanionCmd<space>/", desc = "Chat Cmd" }, | ||
{ "<leader>a", "", mode = { "n", "x" }, desc = "+avante" }, | ||
{ "<leader>aa", mode = { "n", "x" }, desc = "Ask" }, | ||
{ "<leader>ae", mode = { "n", "x" }, desc = "Edit" }, | ||
}, | ||
opts = function() | ||
vim.env.GEMINI_API_KEY = require("config.m-utils").get_age_credentials("gemini_api.age") | ||
local ollama_setup = { | ||
-- add any opts here | ||
---@type Provider | ||
provider = "gemini", | ||
vendors = { | ||
---@type AvanteProvider | ||
ollama = { | ||
["local"] = true, | ||
endpoint = "127.0.0.1:11434/v1", | ||
model = "llama3.2", | ||
parse_curl_args = function(opts, code_opts) | ||
return { | ||
url = opts.endpoint .. "/chat/completions", | ||
headers = { | ||
["Accept"] = "application/json", | ||
["Content-Type"] = "application/json", | ||
}, | ||
body = { | ||
model = opts.model, | ||
messages = require("avante.providers").copilot.parse_message(code_opts), -- you can make your own message, but this is very advanced | ||
max_tokens = 2048, | ||
stream = true, | ||
}, | ||
} | ||
end, | ||
parse_response_data = function(data_stream, event_state, opts) | ||
require("avante.providers").openai.parse_response(data_stream, event_state, opts) | ||
end, | ||
}, | ||
}, | ||
} | ||
if not vim.env.GEMINI_API_KEY then | ||
return ollama_setup | ||
end | ||
return { | ||
---@type Provider | ||
provider = "gemini", | ||
} | ||
end, | ||
dependencies = { | ||
"nvim-lua/plenary.nvim", | ||
-- 'KingMichaelPark/age.nvim', -- Add age dependency | ||
{ dir = "~/Downloads/GitClones/age.nvim" }, -- Add age dependency | ||
"nvim-treesitter/nvim-treesitter", | ||
"KingMichaelPark/age.nvim", | ||
{ | ||
"MeanderingProgrammer/render-markdown.nvim", | ||
"stevearc/dressing.nvim", | ||
opts = { | ||
file_types = { "markdown", "Avante", "codecompanion" }, | ||
select = { | ||
-- Priority list of preferred vim.select implementations | ||
backend = { "telescope", "fzf_lua", "fzf", "builtin", "nui" }, | ||
-- Options for fzf-lua | ||
fzf_lua = { | ||
winopts = { | ||
height = 0.5, | ||
width = 0.8, | ||
}, | ||
}, | ||
}, | ||
}, | ||
ft = { "markdown", "Avante", "codecompanion" }, | ||
}, | ||
}, | ||
config = function() | ||
require("codecompanion").setup({ | ||
display = { chat = { render_headers = false } }, | ||
strategies = { | ||
--NOTE: Change the adapter as required | ||
chat = { adapter = "openai_compatible" }, | ||
inline = { adapter = "openai_compatible" }, | ||
"nvim-lua/plenary.nvim", | ||
"MunifTanjim/nui.nvim", | ||
--- The below dependencies are optional, | ||
"nvim-tree/nvim-web-devicons", -- or echasnovski/mini.icons | ||
{ | ||
-- 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, | ||
}, | ||
}, | ||
adapters = { | ||
openai_compatible = function() | ||
return require("codecompanion.adapters").extend("openai_compatible", { | ||
env = { | ||
url = "https://glhf.chat", | ||
api_key = function() | ||
require("m-utils").get_age_credentials("glhf.age") | ||
end, | ||
chat_url = "/api/openai/v1/chat/completions", | ||
}, | ||
schema = { | ||
model = { default = "hf:Qwen/Qwen2.5-Coder-32B-Instruct" }, | ||
num_ctx = { default = 32768 }, | ||
}, | ||
}) | ||
end, | ||
}, | ||
{ | ||
-- Make sure to set this up properly if you have lazy=true | ||
"MeanderingProgrammer/render-markdown.nvim", | ||
opts = { | ||
file_types = { "markdown", "Avante" }, | ||
}, | ||
}) | ||
end, | ||
ft = { "markdown", "Avante" }, | ||
}, | ||
}, | ||
} |
Oops, something went wrong.