Чт 19 июн 2025 02:57:51 MSK

This commit is contained in:
Alexander Neonxp Kiryukhin 2025-06-19 02:57:51 +03:00
parent a45c845978
commit 26341d565a
Signed by: NeonXP
SSH key fingerprint: SHA256:SVt7TjxbVc87m1QYaQziOJ0N3OCFURv2g76gD/UTTXI
10 changed files with 162 additions and 16 deletions

View file

@ -3,8 +3,20 @@ local lspconfig = require("lspconfig")
local util = require("lspconfig/util")
local function config(_config)
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = vim.tbl_deep_extend("force", capabilities, require("blink.cmp").get_lsp_capabilities({}, false))
capabilities = vim.tbl_deep_extend("force", capabilities, {
textDocument = {
foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true,
},
},
})
return vim.tbl_deep_extend("force", {
-- capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()),
capabilities = capabilities,
}, _config or {})
end
-- иницализация gopls LSP для Go

View file

@ -5,8 +5,12 @@ require("lazy").setup({
"ray-x/guihua.lua",
build = "cd lua/fzy && make",
},
{ "neovim/nvim-lspconfig" },
{
"neovim/nvim-lspconfig",
dependencies = { "saghen/blink.cmp" },
},
{ "Snyssfx/goerr-nvim" },
require("plugins.apidocs"),
require("plugins.todo"),
require("plugins.codecompanion"),
require("plugins.resize"),

View file

@ -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" },
},
}

View file

@ -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" },

View file

@ -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",
},
}