local plugins = { { "williamboman/mason.nvim", opts = { ensure_installed = { "gopls", "rust-analyzer", "pyright", "mypy", "ruff", "black", "debugpy", "powershell-editor-services", "bash-language-server", "eslint-lsp", "js-debug-adapter", "prettier", "typescript-language-server" }, }, }, { "christoomey/vim-tmux-navigator", lazy = false, }, { "mfussenegger/nvim-dap", init = function() require("core.utils").load_mappings("dap") require('dap.ext.vscode').load_launchjs('.vscode/launch.json', {}) end }, { "rcarriga/nvim-dap-ui", 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 }, { "neovim/nvim-lspconfig", config = function() require "plugins.configs.lspconfig" require "custom.configs.lspconfig" end, }, { "jose-elias-alvarez/null-ls.nvim", ft = "go, python", opts = function() return require "custom.configs.null-ls" end, }, -- Golang { "dreamsofcode-io/nvim-dap-go", ft = "go", dependencies = { "mfussenegger/nvim-dap", "rcarriga/nvim-dap-ui", }, config = function(_, opts) require("dap-go").setup(opts) require("core.utils").load_mappings("dap_go") end }, { "olexsmir/gopher.nvim", ft = "go", config = function(_, opts) require("gopher").setup(opts) require("core.utils").load_mappings("gopher") end, build = function() vim.cmd [[silent! GoInstallDeps]] end, }, --Rust { "rust-lang/rust.vim", ft = "rust", init = function () vim.g.rustfmt_autosave = 1 end }, { "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 }, { "mfussenegger/nvim-dap", }, { 'saecki/crates.nvim', ft = {"rust","toml"}, config = function (_, opts) local crates = require('crates') crates.setup(opts) crates.show() end }, { "hrsh7th/nvim-cmp", opts = function () local M = require "plugins.configs.cmp" table.insert(M.sources, {name= "crates"}) end }, --python { "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) end, }, --ChatGPT --{ -- "dreamsofcode-io/ChatGPT.nvim", -- event = "VeryLazy", -- dependencies = { -- "MunifTanjim/nui.nvim", -- "nvim-lua/plenary.nvim", -- "nvim-telescope/telescope.nvim" -- }, -- config = function() -- require("chatgpt").setup({ -- async_api_key_cmd = "bw get password ChatGPT-APIKey", -- }) -- end, --}, { "nvim-treesitter/nvim-treesitter", opts = function() local opts = require "plugins.configs.treesitter" require "custom.configs.treesitter" require'nvim-treesitter.install'.prefer_git = true opts.ensure_installed = { "lua", "javascript", "typescript", "tsx", "go", "terraform", "c_sharp", "bash", } return opts end, } } return plugins