return require("packer").startup { function(use) use "wbthomason/packer.nvim" -- Tpope general improvements use "tpope/vim-sensible" -- Sane defaults use "tpope/vim-endwise" -- Add closing statements automatically for if, function etc use "tpope/vim-surround" -- Surround with ', ", etc use "tpope/vim-fugitive" -- Git integration use "tpope/vim-vinegar" -- Netrw improvements use "tpope/vim-obsession" -- Session.vim management use "tpope/vim-dadbod" -- Database access use "kristijanhusak/vim-dadbod-ui" -- UI For Dadbod use "tpope/vim-speeddating" -- and for dates use "tpope/vim-dispatch" -- Dispatch command use "tpope/vim-projectionist" -- Project config file! use "tpope/vim-unimpaired" -- Additional [ and ] mappings use "tpope/vim-repeat" -- Better . repeat use "tpope/vim-commentary" -- Commenting motion use "tpope/vim-sleuth" -- Intendation heuristics -- General improvements use "airblade/vim-gitgutter" -- Git signs use "godlygeek/tabular" -- Tabular command for alignment use "vim-scripts/utl.vim" -- Universal text linking use { "mbbill/undotree", cmd = "UndotreeToggle" } -- Undos in a tree for easy access use "mhinz/vim-grepper" -- Grepper command - improved grepping throughout project use "radenling/vim-dispatch-neovim" -- vim-dispatch for neovim - uses terminal use "wellle/targets.vim" -- Additional targets for inside and around motions use "flazz/vim-colorschemes" -- All popular colorschemes use "romainl/vim-qf" -- Quickfix list upgrades use "romainl/vim-devdocs" -- Quick DevDocs.io search using :DD use "gpanders/editorconfig.nvim" -- .editorconfig support use "lewis6991/impatient.nvim" -- Caching lua modules for faster startup -- Tools use "direnv/direnv.vim" -- Integration with Direnv use "vim-test/vim-test" -- Running tests from vim use "dense-analysis/ale" -- Asynchronous Lint Engine - used for linting, not for LSP use "nathunsmitty/nvim-ale-diagnostic" -- Neovim LSP + ALE integration use "mfussenegger/nvim-dap" -- Debug Adapter Protocol use "rcarriga/nvim-dap-ui" -- UI components for DAP use "theHamsta/nvim-dap-virtual-text" -- Virtual text display for DAP use "diepm/vim-rest-console" -- REST console for vim use "jamestthompson3/nvim-remote-containers" -- devcontainer.json support use "jbyuki/one-small-step-for-vimkind" -- Debugger for Nvim-Lua -- Snippets if vim.g.loaded_python3_provider ~= 0 then use "SirVer/ultisnips" -- Snippets in python format use "honza/vim-snippets" -- Collection of snippets for UltiSnips end -- Language support use "tpope/vim-rails" -- Enables all rails command through vim and integrates with projectionist use "c-brenn/phoenix.vim" -- Similar to vim-rails, but for phoenix use "tpope/vim-salve" -- Clojure integration with projectionist use "tpope/vim-fireplace" -- Clojure REPL and integration use "vimwiki/vimwiki" -- Vimwiki - personal wiki in vim use "esensar/vimwiki-reviews-lua" -- Vimwiki extension for periodic reviews use "ledger/vim-ledger" -- Support for ledger-cli format use "tandrewnichols/vim-docile" -- Support for vim doc.txt format use "habamax/vim-godot" -- Godot engine (and script) support use "guns/vim-sexp" -- Precision editing for S-expressions use("tpope/vim-sexp-mappings-for-regular-people") -- Simpler keymaps for vim-sexp use "tridactyl/vim-tridactyl" -- Tridactyl config file support use "aklt/plantuml-syntax" -- PlantUML support use "cdelledonne/vim-cmake" -- CMake integration -- Treesitter use { "nvim-treesitter/nvim-treesitter", run = ":TSUpdate" } -- Treesitter integration use "nvim-treesitter/playground" -- TSPlaygroundToggle - access treesitter data -- LSP use "neovim/nvim-lspconfig" -- Easy LSP Config use "alexaandru/nvim-lspupdate" -- Easy install and update for many LSP servers use "hrsh7th/cmp-nvim-lsp" -- LSP source for cmp use "hrsh7th/cmp-buffer" -- Buffer source for nvim-cmp use "hrsh7th/cmp-path" -- Path source for nvim-cmp use "hrsh7th/cmp-nvim-lua" -- Nvim-Lua source for nvim-cmp use "quangnguyen30192/cmp-nvim-ultisnips" -- Ultisnips source for nvim-cmp use "hrsh7th/nvim-cmp" -- completion integration use "nvim-lua/lsp_extensions.nvim" -- LSP extensions (like closing labels for Dart) -- LSP language specific use "tjdevries/nlua.nvim" -- Built-in Lua integration with LSP use "akinsho/flutter-tools.nvim" -- Additional flutter integrations use "mfussenegger/nvim-jdtls" -- Additional java integrations -- Lua support use "tjdevries/astronauta.nvim" -- Support for lua ftplugins and plugins use "nvim-lua/popup.nvim" -- Popup API integration - needed for some plugins use "nvim-lua/plenary.nvim" -- Lua helpers -- Telescope use "nvim-telescope/telescope.nvim" -- Fuzzy searcher use "nvim-telescope/telescope-dap.nvim" -- DAP integration for Telescope end }