summaryrefslogtreecommitdiff
path: root/config/nvim/lua/plugins/codecompanion.lua
blob: c4ad8927d7d6d86ad4ef1b813132770e92ffd276 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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",
	},
}