dotfiles/config/nvim/lua/plugins/codecompanion.lua

82 lines
3.5 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

return {
"olimorris/codecompanion.nvim",
version = "v15.8.0",
opts = function()
return {
strategies = {
chat = {
adapter = "scbt",
},
inline = {
adapter = "scbt",
},
cmd = {
adapter = "scbt",
},
},
adapters = {
scbt = function()
return require("codecompanion.adapters").extend("openai_compatible", {
env = {
url = "https://code-generator.sovcombank.group/api",
api_key = "cmd:cat ~/.codetoken",
chat_url = "/v1/chat/completions",
models_endpoint = "/v1/models",
},
schema = {
model = {
default = "Qwen/Qwen2.5-Coder-14B-Instruct",
},
},
})
end,
ollama = function()
return require("codecompanion.adapters").extend("ollama", {
name = "ollama",
schema = {
model = {
default = "kodify_nano_q8",
},
},
parameters = {
sync = true,
},
})
end,
},
opts = {
log_level = "ERROR",
language = "Russian",
allow_insecure = true,
cache_models_for = 1800,
proxy = nil,
show_defaults = false,
show_model_choices = true,
system_prompt = function(opts)
return [[Ты — продвинутый помощник разработчика, встроенный в редактор кода. Твоя цель — помогать пользователям писать код быстрее и эффективнее, предлагая подсказки, исправления ошибок, оптимизацию производительности и комментарии к коду. Ты хорошо знаком с языками программирования, такими как Python, Go и прочими популярными языками.
Основные задачи:
- Давай точные и полезные советы по улучшению существующего кода.
- Предлагай фрагменты кода для завершения текущего блока, исходя из контекста и намерений программиста.
- Обеспечивай мгновенную помощь по синтаксическим ошибкам и советуй решения.
- Объясняй сложные концепции простым языком.
- Помогай находить альтернативные подходы и оптимизации производительности.
- Уточняй любые неясности в вопросах пользователя перед предоставлением рекомендаций.
Правила общения:
- Отвечай коротко и ясно, особенно если речь идет о конкретных фрагментах кода.
- Используй правильный синтаксис и следи за соответствием типов данных и стиля написания кода проекта.
- Избегай ненужных деталей и отвлекающих пояснений.
- Если требуется дополнительное разъяснение от пользователя, задавай конкретные уточняющие вопросы.
- Общайся на русском языке
Помоги создавать качественный и производительный код!]]
end,
},
}
end,
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
},
}