diff options
| author | 2025-06-19 02:57:51 +0300 | |
|---|---|---|
| committer | 2025-06-19 02:57:51 +0300 | |
| commit | 26341d565ac365904ecd6c98479903a2b0e11bdd (patch) | |
| tree | de221153df73486f9c2937185a25ac3cedabde7f /config/nvim/lua/plugins | |
| parent | Вс 15 июн 2025 16:45:49 MSK (diff) | |
| download | dotfiles-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')
| -rw-r--r-- | config/nvim/lua/plugins/apidocs.lua | 16 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/cmp.lua | 30 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/codecompanion.lua | 82 |
3 files changed, 119 insertions, 9 deletions
diff --git a/config/nvim/lua/plugins/apidocs.lua b/config/nvim/lua/plugins/apidocs.lua new file mode 100644 index 0000000..9bc35da --- /dev/null +++ b/config/nvim/lua/plugins/apidocs.lua @@ -0,0 +1,16 @@ +return { + "emmanueltouzery/apidocs.nvim", + dependencies = { + "nvim-telescope/telescope.nvim", -- or, 'folke/snacks.nvim' + }, + cmd = { "ApidocsSearch", "ApidocsInstall", "ApidocsOpen", "ApidocsSelect", "ApidocsUninstall" }, + config = function() + require("apidocs").setup() + -- Picker will be auto-detected. To select a picker of your choice explicitly you can set picker by the configuration option 'picker': + -- require('apidocs').setup({picker = "snacks"}) + -- Possible options are 'ui_select', 'telescope', and 'snacks' + end, + keys = { + { "<leader>sad", "<cmd>ApidocsOpen<cr>", desc = "Search Api Doc" }, + }, +} diff --git a/config/nvim/lua/plugins/cmp.lua b/config/nvim/lua/plugins/cmp.lua index 718d8cb..d113fd5 100644 --- a/config/nvim/lua/plugins/cmp.lua +++ b/config/nvim/lua/plugins/cmp.lua @@ -1,10 +1,3 @@ -local source_mapping = { - buffer = "[Buffer]", - nvim_lsp = "[LSP]", - nvim_lua = "[Lua]", - luasnip = "[Snip]", - path = "[Path]", -} return { "saghen/blink.cmp", lazy = false, @@ -16,8 +9,26 @@ return { build = "make install_jsregexp", dependencies = { "rafamadriz/friendly-snippets" }, config = function() + local ls = require("luasnip") + local s = ls.snippet + local sn = ls.snippet_node + local t = ls.text_node + local i = ls.insert_node + local f = ls.function_node + local c = ls.choice_node + local d = ls.dynamic_node + local r = ls.restore_node + local fmt = require("luasnip.extras.fmt").fmt + local rep = require("luasnip.extras").rep + + ls.config.setup({ + history = true, + update_events = "TextChanged,TextChangedI", + }) require("luasnip.loaders.from_vscode").lazy_load() - require("luasnip.loaders.from_vscode").lazy_load("./snippets") + require("luasnip.loaders.from_vscode").lazy_load({ + paths = { vim.fn.stdpath("config") .. "/snippets" }, + }) end, }, }, @@ -39,7 +50,7 @@ return { cmdline = { keymap = { preset = "inherit", - ['<Tab>'] = { 'show', 'accept' }, + ["<Tab>"] = { "show", "accept" }, }, completion = { menu = { auto_show = false }, @@ -47,6 +58,7 @@ return { }, sources = { "cmdline" }, }, + signature = { enabled = true }, snippets = { preset = "luasnip" }, sources = { default = { "lsp", "path", "snippets", "buffer", "codecompanion" }, 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", + }, +} |
