return { { "wakatime/vim-wakatime", lazy = false }, { "stevearc/conform.nvim", config = function() require("conform").setup({ formatters_by_ft = { lua = { "stylua" }, rust = { "rustfmt", lsp_format = "fallback" }, javascript = { "prettierd", "prettier", stop_after_first = true }, }, format_on_save = { lsp_format = "fallback", }, }) end, }, { "numToStr/Comment.nvim", }, { "akinsho/toggleterm.nvim", version = "*", config = true }, { "christoomey/vim-tmux-navigator", cmd = { "TmuxNavigateLeft", "TmuxNavigateDown", "TmuxNavigateUp", "TmuxNavigateRight", "TmuxNavigatePrevious", }, }, { "windwp/nvim-autopairs", event = "InsertEnter", config = true, }, { "sainnhe/gruvbox-material", lazy = false, config = function() -- Optionally configure and load the colorscheme -- directly inside the plugin declaration. vim.g.gruvbox_material_enable_italic = true vim.g.gruvbox_material_background = "hard" vim.cmd.colorscheme("gruvbox-material") end, }, { "hrsh7th/vim-vsnip" }, { "hrsh7th/cmp-nvim-lsp" }, { "hrsh7th/nvim-cmp", config = function() local cmp = require("cmp") cmp.setup({ snippet = { expand = function(args) vim.fn["vsnip#anonymous"](args.body) end, }, mapping = cmp.mapping.preset.insert({ [""] = cmp.mapping.scroll_docs(-4), [""] = cmp.mapping.scroll_docs(4), [""] = cmp.mapping.complete(), [""] = cmp.mapping.abort(), [""] = cmp.mapping.confirm({ select = true }), }), sources = cmp.config.sources({ { name = "nvim_lsp" }, { name = "vsnip" }, }, { { name = "buffer" }, }), }) end, }, { "nvim-telescope/telescope.nvim", dependencies = { "nvim-lua/plenary.nvim" }, config = function() -- require("telescope").load_extension("fzf") end, }, { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", config = function() local configs = require("nvim-treesitter.configs") configs.setup({ ensure_installed = { "lua", "javascript", "typescript", "html", "tsx", "zig" }, sync_install = false, highlight = { enable = true }, indent = { enable = true }, }) end, }, { "nvim-neo-tree/neo-tree.nvim", branch = "v3.x", dependencies = { "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons", "MunifTanjim/nui.nvim", { "s1n7ax/nvim-window-picker", version = "2.*", config = function() require("window-picker").setup({ filter_rules = { include_current_win = false, autoselect_one = true, -- filter using buffer options bo = { -- if the file type is one of following, the window will be ignored filetype = { "neo-tree", "neo-tree-popup", "notify" }, -- if the buffer type is one of following, the window will be ignored buftype = { "terminal", "quickfix" }, }, }, }) end, }, }, config = function() require("neo-tree").setup({ filesystem = { follow_current_file = { enabled = true, }, }, close_if_last_window = false, }) vim.cmd([[nnoremap \ :Neotree reveal]]) end, }, { "neovim/nvim-lspconfig", dependencies = { "hrsh7th/cmp-nvim-lsp" }, config = function() local lsp = require("lspconfig") local capabilities = require("cmp_nvim_lsp").default_capabilities() lsp.lua_ls.setup({ capabilities = capabilities, settings = { Lua = { diagnostics = { globals = { "vim", "require" } }, workspace = { -- Make the server aware of Neovim runtime files library = vim.api.nvim_get_runtime_file("", true), }, }, }, }) lsp.vtsls.setup({ capabilities = capabilities, }) lsp.zls.setup({ capabilities = capabilities, }) lsp.rust_analyzer.setup({ capabilities = capabilities, diagnostic = { -- Prevents the annoying popup for cancalled requests refreshSupport = false, }, }) lsp.gopls.setup({ capabilities = capabilities, }) lsp.tailwindcss.setup({ capabilities = capabilities, }) lsp.ocamllsp.setup({ capabilities = capabilities, }) lsp.svelte.setup({ capabilities = capabilities, }) lsp.biome.setup({ capabilities = capabilities, }) end, }, { "sindrets/diffview.nvim", }, }