local cmp = require "cmp" local plugins = { { 'numToStr/Comment.nvim', lazy = false, }, { "simrat39/rust-tools.nvim", ft = "rust", dependencies = "neovim/nvim-lspconfig", opts = function () return require "custom.configs.rust-tools" end, config = function(_, opts) require('rust-tools').setup(opts) end }, { 'saecki/crates.nvim', ft = {"toml"}, config = function(_, opts) local crates = require('crates') crates.setup(opts) require('cmp').setup.buffer({ sources = { { name = "crates" }} }) crates.show() require("core.utils").load_mappings("crates") end, }, { "rust-lang/rust.vim", ft = "rust", init = function () vim.g.rustfmt_autosave = 1 end }, { "theHamsta/nvim-dap-virtual-text", lazy = false, config = function(_, opts) require("nvim-dap-virtual-text").setup() end }, { "hrsh7th/nvim-cmp", opts = function() local M = require "plugins.configs.cmp" M.completion.completeopt = "menu,menuone,noselect" M.mapping[""] = cmp.mapping.confirm { behavior = cmp.ConfirmBehavior.Insert, select = false, } table.insert(M.sources, {name = "crates"}) return M end, }, { "m4xshen/hardtime.nvim", dependencies = { "MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim" }, cmd = { "Hardtime" }, opts = {} }, { "folke/todo-comments.nvim", event = "BufReadPost", dependencies = { "nvim-lua/plenary.nvim" }, config = function() require "custom.configs.todo" end, }, { "RRethy/vim-illuminate", event = { "CursorHold", "CursorHoldI" }, config = function() require "custom.configs.illuminate" end, }, { "hiphish/rainbow-delimiters.nvim", event = "BufReadPost", config = function() local rainbow_delimiters = require "rainbow-delimiters" vim.g.rainbow_delimiters = { strategy = { [""] = rainbow_delimiters.strategy["global"], vim = rainbow_delimiters.strategy["local"], }, query = { [""] = "rainbow-delimiters", lua = "rainbow-blocks", }, highlight = { "RainbowDelimiterRed", "RainbowDelimiterYellow", "RainbowDelimiterBlue", "RainbowDelimiterOrange", "RainbowDelimiterGreen", "RainbowDelimiterViolet", "RainbowDelimiterCyan", }, } end, }, { "rcarriga/nvim-dap-ui", event = "VeryLazy", dependencies = "mfussenegger/nvim-dap", config = function() local dap = require("dap") local dapui = require("dapui") dapui.setup() dap.listeners.after.event_initialized["dapui_config"] = function() dapui.open() end dap.listeners.before.event_terminated["dapui_config"] = function() dapui.close() end dap.listeners.before.event_exited["dapui_config"] = function() dapui.close() end end }, { "jay-babu/mason-nvim-dap.nvim", event = "VeryLazy", dependencies = { "williamboman/mason.nvim", "mfussenegger/nvim-dap", }, opts = { handlers = {} }, }, { "mfussenegger/nvim-dap", config = function (_,opts) require("core.utils").load_mappings("dap") end }, { "mfussenegger/nvim-dap-python", ft = "python", dependencies = { "mfussenegger/nvim-dap", "rcarriga/nvim-dap-ui" }, config = function (_,opts) local path = "~/.local/share/nvim/mason/packages/debugpy/venv/bin/python" require("dap-python").setup(path) require("core.utils").load_mappings("dap_python") end, }, { "jose-elias-alvarez/null-ls.nvim", event = "VeryLazy", opts = function() return require "custom.configs.null-ls" end, }, { "neovim/nvim-lspconfig", config = function () require "plugins.configs.lspconfig" require "custom.configs.lspconfig" end }, { "nvim-treesitter", opts = { ensure_installed = { "ocaml", "python", "rust", "css", "html", "dockerfile", "gitignore", "typescript", "nix", "rust", } } }, { "theRealCarneiro/hyprland-vim-syntax", dependencies = { "nvim-treesitter/nvim-treesitter" }, ft = "hypr", }, } return plugins