diff --git a/init.lua b/init.lua index 3ea176e..5fa710e 100644 --- a/init.lua +++ b/init.lua @@ -9,13 +9,11 @@ require("config.nvim-treesitter") require("config.lualine") require("config.nvim-cmp") require("config.nvim-lspconfig") -require("config.vimtex") require("config.render-markdown") -require("config.which-key") require("config.indent-blankline") require("config.fzf") -require("config.noice") +--require("config.noice") require("config.mkdx") require("config.mutton") diff --git a/lazy-lock.json b/lazy-lock.json index bb348a7..826bd49 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -3,7 +3,7 @@ "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, - "fzf-lua": { "branch": "main", "commit": "da9a0898541b34b95361e4223df17a7f680be070" }, + "fzf-lua": { "branch": "main", "commit": "33e704a07d1f79e55e26becf60992971266719fa" }, "gruvbox": { "branch": "master", "commit": "f1ecde848f0cdba877acb0c740320568252cc482" }, "indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" }, "kanagawa.nvim": { "branch": "master", "commit": "cfd67b0e1eeaa04302b8c7eb072253d24bf22d84" }, @@ -18,14 +18,12 @@ "nvim-lspconfig": { "branch": "master", "commit": "fd26f8626c03b424f7140d454031d1dcb8d23513" }, "nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" }, "nvim-tree.lua": { "branch": "master", "commit": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4" }, - "nvim-treesitter": { "branch": "master", "commit": "71ac531a6301b6d5f4dc4d7157ffd8bd8d6d769e" }, + "nvim-treesitter": { "branch": "master", "commit": "ffd284c4706d91c0d94916995f584b22ce89afcb" }, "nvim-web-devicons": { "branch": "master", "commit": "ab4cfee554e501f497bce0856788d43cf2eb93d7" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, - "render-markdown.nvim": { "branch": "main", "commit": "b56fa1bc7b513f16a1c361b81438f4944b420a32" }, - "suda.vim": { "branch": "master", "commit": "9adda7d195222d4e2854efb2a88005a120296c47" }, + "render-markdown.nvim": { "branch": "main", "commit": "81374ffd26f9a9d5f44274a9e7e60547b5fd106f" }, "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, "vim-mutton": { "branch": "master", "commit": "1601de411cfebcb358ab4ed469190d861901ce70" }, - "vim-nightfly-colors": { "branch": "master", "commit": "caf619ea508afae2137c71807939ded866591d1f" }, - "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }, + "vim-nightfly-colors": { "branch": "master", "commit": "43cd633951ea75cad622a881953b02094fdd4b46" }, "zoxide.vim": { "branch": "master", "commit": "b1e70b6fc1682a83929aee63680d2b43456fe9a5" } } diff --git a/lua/config/common-settings.lua b/lua/config/common-settings.lua index abc3ff4..a54d7f9 100644 --- a/lua/config/common-settings.lua +++ b/lua/config/common-settings.lua @@ -88,7 +88,7 @@ vim.opt.showmatch = true --------------------------------------------------------------------------[[VISUAL]]-------------------------------------------------------------------------- vim.o.laststatus = 0 -- Отключает строку состояния -vim.cmd("colorscheme tokyonight-night") +--vim.cmd("colorscheme tokyonight-night") --vim.cmd("colorscheme gruvbox") --vim.cmd("colorscheme astra") -- Применение темы --vim.cmd("colorscheme kanagawa") -- Основная схема @@ -97,6 +97,58 @@ vim.cmd("colorscheme tokyonight-night") --vim.cmd("colorscheme kanagawa-lotus") -- Альтернативная палитра --vim.cmd("colorscheme nightfly") --vim.cmd("colorscheme randomhue") +--vim.cmd("colorscheme kanagawa") + +-- init.lua + +-- Функция для случайного выбора цветовой темы +local function set_random_colorscheme() + -- Список доступных цветовых тем + local colorschemes = { + "tokyonight-night", + "gruvbox", + "kanagawa", + "kanagawa-wave", + "kanagawa-dragon", + "kanagawa-lotus", + "nightfly", + "randomhue", + "darkblue", + "habamax", + "minischeme", + "retrobox", + "slate", + "zaibatsu", + } + -- Инициализация генератора случайных чисел + math.randomseed(os.time()) + + -- Генерация случайного индекса для списка colorschemes + local random_index = math.random(1, #colorschemes) + + -- Применение случайной цветовой схемы + vim.cmd("colorscheme " .. colorschemes[random_index]) + + +end + +-- Запускаем функцию при старте Neovim +set_random_colorscheme() + +-- (Опционально) Добавляем команду для ручного вызова функции +vim.api.nvim_create_user_command("RandomColorscheme", set_random_colorscheme, {}) + + + + + + + + + + + + --status line disabling vim.defer_fn(function() vim.opt.laststatus = 0 end, 35) diff --git a/lua/config/nvim-cmp.lua b/lua/config/nvim-cmp.lua index e4fe780..0d91a76 100644 --- a/lua/config/nvim-cmp.lua +++ b/lua/config/nvim-cmp.lua @@ -10,7 +10,7 @@ cmp.setup({ [''] = cmp.mapping.select_prev_item(), [''] = cmp.mapping.select_next_item(), [''] = cmp.mapping.confirm({ select = true }), - [''] = cmp.mapping.confirm({ select = true }), + [''] = cmp.mapping.confirm({ select = true }), [''] = cmp.mapping.complete(), [''] = cmp.mapping.close(), [''] = cmp.mapping.close(), diff --git a/lua/config/nvim-tree.lua b/lua/config/nvim-tree.lua index 7b39845..2cb55ff 100644 --- a/lua/config/nvim-tree.lua +++ b/lua/config/nvim-tree.lua @@ -4,7 +4,7 @@ require("nvim-tree").setup({ sorter = "case_sensitive", }, view = { - width = 30, + width = 50, }, renderer = { group_empty = true, @@ -17,6 +17,43 @@ require("nvim-tree").setup({ quit_on_open = true, -- закрывать дерево при открытии файла }, }, + on_attach = function(bufnr) + local api = require("nvim-tree.api") + + -- Apply default mappings + api.config.mappings.default_on_attach(bufnr) + + -- Remove default C-] mapping + vim.keymap.del("n", "", { buffer = bufnr }) + + -- Define file extensions to handle with system open + local special_extensions = { + ".pdf", ".png", ".jpeg", ".jpg", ".doc", ".docx" + } + + -- Helper function to check file extension + local function has_special_extension(node) + for _, ext in ipairs(special_extensions) do + if node.name:match("%.?[^.]+$") == ext then + return true + end + end + return false + end + + -- Create combined CR mapping + vim.keymap.set("n", "", function() + local node = api.tree.get_node_under_cursor() + if node and has_special_extension(node) then + api.node.run.system() -- Open file in system + else + api.node.open.edit() -- Default open file behavior + api.tree.change_root_to_node() -- Change root to node + end + end, { buffer = bufnr }) + end, }) + +-- Глобальные бинды для nvim-tree vim.keymap.set("n", "e", ":NvimTreeToggle", { noremap = true, silent = true }) vim.keymap.set("n", "q", ":NvimTreeFindFile", { noremap = true, silent = true }) diff --git a/lua/config/vimtex.lua b/lua/config/vimtex.lua deleted file mode 100644 index a57cd3b..0000000 --- a/lua/config/vimtex.lua +++ /dev/null @@ -1 +0,0 @@ -vim.g.vimtex_view_method = "zathura" -- Настройте просмотрщик PDF (например, Zathura) diff --git a/lua/config/which-key.lua b/lua/config/which-key.lua deleted file mode 100644 index d654699..0000000 --- a/lua/config/which-key.lua +++ /dev/null @@ -1 +0,0 @@ -require("which-key").setup() diff --git a/lua/plugins.lua b/lua/plugins.lua index 9d04001..27cbbae 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -1,5 +1,112 @@ return { - -- Список плагинов + -- ============================== + -- Визуальные плагины + -- ============================== + + -- Темы оформления + { + "bluz71/vim-nightfly-colors", -- Nightfly тема + }, + { + "folke/tokyonight.nvim", -- TokyoNight тема + }, + { + "morhetz/gruvbox", -- Gruvbox тема + }, + { + "rebelot/kanagawa.nvim", -- Kanagawa тема + }, + + -- Иконки + { + "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", + } + }, + + -- ============================== + -- Функциональные плагины + -- ============================== + + -- 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 для синтаксического анализа { @@ -9,99 +116,4 @@ return { require("config.nvim-treesitter") end, }, - - -- Icon provider plugins - { "antoinemadec/FixCursorHold.nvim" }, - { "nvim-tree/nvim-web-devicons" }, - - -- Render Markdown - { - "MeanderingProgrammer/render-markdown.nvim", - dependencies = { "echasnovski/mini.nvim", opt = true }, - config = function() - require("config.render-markdown") - end, - }, - - - -- Показывает доступные комбинации клавиш - { - "folke/which-key.nvim", - config = function() - require("config.which-key") - end, - }, - - -- Визуализация отступов - { - "lukas-reineke/indent-blankline.nvim", - config = function() - require("config.indent-blankline") - end, - }, - - -- Канагава theme - { - "rebelot/kanagawa.nvim", - lazy = false, -- Убедитесь, что плагин загружается при запуске - priority = 1000, -- Высокий приоритет для применения цветовой схемы - config = function() - vim.cmd("colorscheme kanagawa") - end - }, - - - --nigthfly theme - { - "bluz71/vim-nightfly-colors", - lazy = false, - priority = 1000, - config = function() - end, - }, - - { - "folke/noice.nvim", -- Плагин для улучшения командной строки и сообщений - event = "VeryLazy", -- Загружается при старте NeoVim - dependencies = { - -- Требуется для UI-компонентов - "MunifTanjim/nui.nvim", - -- Опционально: для замены стандартных уведомлений NeoVim - "rcarriga/nvim-notify", - }, - }, - - {"hrsh7th/nvim-cmp"}, - {"hrsh7th/cmp-nvim-lsp" }, - {"hrsh7th/cmp-nvim-lsp-signature-help" }, - {'hrsh7th/cmp-path'}, - { - "ibhagwan/fzf-lua", - -- optional for icon support - dependencies = { "nvim-tree/nvim-web-devicons" }, - -- or if using mini.icons/mini.nvim - -- dependencies = { "echasnovski/mini.icons" }, - opts = {} - }, - - { - 'SidOfc/mkdx' - }, - - { - 'lambdalisue/suda.vim' - }, - - { - 'nanotee/zoxide.vim' - }, - {"nvim-lualine/lualine.nvim", dependencies = { "kyazdani42/nvim-web-devicons", optional = true } }, - { "morhetz/gruvbox" }, - { "folke/tokyonight.nvim" }, - { "neovim/nvim-lspconfig" }, - { "kyazdani42/nvim-tree.lua", dependencies = { "nvim-tree/nvim-web-devicons" } }, - --{ "akinsho/bufferline.nvim", version = "*", dependencies = "nvim-tree/nvim-web-devicons" }, - { "williamboman/mason.nvim" }, - { "nvim-lua/plenary.nvim", lazy = true }, - {'gabenespoli/vim-mutton'}, }