return { -- ============================== -- Визуальные плагины -- ============================== -- Темы оформления { "bluz71/vim-nightfly-colors", -- Nightfly тема }, { "folke/tokyonight.nvim", -- TokyoNight тема }, { "morhetz/gruvbox", -- Gruvbox тема }, { "rebelot/kanagawa.nvim", -- Kanagawa тема }, { "navarasu/onedark.nvim", config = function() require("onedark").setup({ style = "dark", -- Выберите стиль: 'dark', 'darker', 'cool', 'deep', 'warm', 'warmer' }) require("onedark").load() -- Активируйте тему end, }, -- Иконки { "nvim-tree/nvim-web-devicons", -- Провайдер иконок для других плагинов }, -- Интерфейс и UI -- { -- "MeanderingProgrammer/render-markdown.nvim", -- Рендеринг Markdown -- dependencies = { "echasnovski/mini.nvim", opt = true }, -- config = function() -- require("config.render-markdown") -- end, -- }, { "nvim-lualine/lualine.nvim", -- Статусная строка dependencies = { "kyazdani42/nvim-web-devicons", optional = true }, }, { "lukas-reineke/indent-blankline.nvim", -- Визуализация отступов config = function() require("config.indent-blankline") end, }, { "folke/noice.nvim", event = "VeryLazy", opts = { -- add any options here }, dependencies = { -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries "MunifTanjim/nui.nvim", -- OPTIONAL: -- `nvim-notify` is only needed, if you want to use the notification view. -- If not available, we use `mini` as the fallback "rcarriga/nvim-notify", } }, { "iamcco/markdown-preview.nvim", cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, build = "cd app && yarn install", init = function() vim.g.mkdp_filetypes = { "markdown" } vim.g.mkdp_markdown_css = vim.fn.expand("~/.config/nvim/markdown.css") end, ft = { "markdown" }, }, -- ============================== -- Функциональные плагины -- ============================== -- LSP и автодополнение { "hrsh7th/cmp-nvim-lsp", -- Интеграция nvim-cmp с LSP }, { "hrsh7th/cmp-nvim-lsp-signature-help", -- Поддержка сигнатур LSP в автодополнении }, { "hrsh7th/cmp-path", -- Автодополнение путей }, { "hrsh7th/nvim-cmp", -- Основной плагин автодополнения }, { "neovim/nvim-lspconfig", -- Конфигурация LSP }, { "williamboman/mason.nvim", -- Управление LSP серверами }, -- Поиск и навигация { "ibhagwan/fzf-lua", -- FZF для быстрого поиска dependencies = { "nvim-tree/nvim-web-devicons" }, opts = {}, }, { "nvim-lua/plenary.nvim", -- Библиотека для других плагинов }, -- Другие функциональные плагины { "antoinemadec/FixCursorHold.nvim", -- Исправление CursorHold событий }, { "gabenespoli/vim-mutton", -- Дополнительные возможности для работы с текстом }, { "kyazdani42/nvim-tree.lua", -- Файловый менеджер dependencies = { "nvim-tree/nvim-web-devicons" }, }, { "nanotee/zoxide.vim", -- Интеграция с zoxide для быстрой навигации }, { "SidOfc/mkdx", -- Улучшения для работы с Markdown }, -- Treesitter для синтаксического анализа { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", dependencies = { "OXY2DEV/markview.nvim" }, config = function() require("config.nvim-treesitter") end, }, { "OXY2DEV/markview.nvim", lazy = false, config = function() require("config.markview") end, dependencies = { "saghen/blink.cmp" }, }, { 'gsuuon/model.nvim', config = function() local bash_provider = { request_completion = function(handlers, params, options) local input = params.input local command = "~/test '" .. input .. "'" local handle = io.popen(command) local result = handle:read("*a") handle:close() local response = vim.json.decode(result) handlers.on_partial(response.message.content) handlers.on_finish() end } require('model').setup({ chats = { mybash = { provider = bash_provider, create = function(input, context) return { messages = { { role = 'user', content = input } } } end, run = function(messages, config) local last_message = messages[#messages] return { input = last_message.content } end } } }) end } }