summaryrefslogtreecommitdiff
path: root/config/nvim/lua/plugins/codecompanion.lua
diff options
context:
space:
mode:
author2025-06-19 02:57:51 +0300
committer2025-06-19 02:57:51 +0300
commit26341d565ac365904ecd6c98479903a2b0e11bdd (patch)
treede221153df73486f9c2937185a25ac3cedabde7f /config/nvim/lua/plugins/codecompanion.lua
parentВс 15 июн 2025 16:45:49 MSK (diff)
downloaddotfiles-26341d565ac365904ecd6c98479903a2b0e11bdd.tar.gz
dotfiles-26341d565ac365904ecd6c98479903a2b0e11bdd.tar.bz2
dotfiles-26341d565ac365904ecd6c98479903a2b0e11bdd.tar.xz
dotfiles-26341d565ac365904ecd6c98479903a2b0e11bdd.zip
Чт 19 июн 2025 02:57:51 MSK
Diffstat (limited to 'config/nvim/lua/plugins/codecompanion.lua')
-rw-r--r--config/nvim/lua/plugins/codecompanion.lua82
1 files changed, 82 insertions, 0 deletions
diff --git a/config/nvim/lua/plugins/codecompanion.lua b/config/nvim/lua/plugins/codecompanion.lua
new file mode 100644
index 0000000..c4ad892
--- /dev/null
+++ b/config/nvim/lua/plugins/codecompanion.lua
@@ -0,0 +1,82 @@
+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",
+ },
+}