local cmd = vim.cmd cmd [[packadd packer.nvim]] return require'packer'.startup(function() -- Needed to run Packer, it can run itself use 'wbthomason/packer.nvim' -- Wakatime Tracking use 'wakatime/vim-wakatime' ---------------------------------------------------------------- -- LSP and Autocomplete Plugins -- They should be pulled first! ----------------------------------------------------------------- -- Easy Way to install Language Servers use { 'williamboman/mason.nvim', config = function() require("mason").setup() end } use 'williamboman/mason-lspconfig.nvim' use 'neovim/nvim-lspconfig' -- Manage all your Keymaps! use { "lazytanuki/nvim-mapper", config = function() require("nvim-mapper").setup{} end, before = "telescope.nvim" } -- Neovim Autocomplete with LSP use { 'hrsh7th/nvim-cmp', requires = { 'neovim/nvim-lspconfig', 'L3MON4D3/LuaSnip', 'hrsh7th/cmp-nvim-lsp', 'hrsh7th/cmp-path', 'hrsh7th/cmp-buffer', 'hrsh7th/cmp-cmdline', 'hrsh7th/nvim-cmp', 'saadparwaiz1/cmp_luasnip', 'hrsh7th/cmp-nvim-lsp-signature-help', 'f3fora/cmp-spell', } } use ({ 'L3MON4D3/LuaSnip', tag = "v1.1.0", wants = { "friendly-snippets", "vim-snippets" }, }) -- Treesitter interface use { 'nvim-treesitter/nvim-treesitter', run = function() require('nvim-treesitter.install').update({ with_sync = true }) end, } -- Null-LS use({ "jose-elias-alvarez/null-ls.nvim", config = function() require("null-ls").setup({ debug = true, }) end, requires = { "nvim-lua/plenary.nvim" }, }) ------------------------------------------------------------ -- General Functionality ------------------------------------------------------------ -- Tmux Navigation use({ "aserowy/tmux.nvim", config = function() require("tmux").setup() end }) -- Find & Search LSP Tags use 'liuchengxu/vista.vim' -- Snippets use 'rafamadriz/friendly-snippets' -- Rename and Work with Buffer & Tabs use 'pacha/vem-tabline' -- Nvim Tree File Manager on the Left use 'nvim-tree/nvim-tree.lua' -- Trouble Shows Errors with Files. use { "folke/trouble.nvim", requires = "nvim-tree/nvim-web-devicons", config = function() require("trouble").setup { } end } -- Close your brackets easily -- use { -- 'windwp/nvim-autopairs', -- config = function() -- require('nvim-autopairs').setup({ -- }) -- end -- } -- Which Key use { "folke/which-key.nvim", config = function() require("which-key").setup { } end } -- Top Right Notify Pop Up use 'rcarriga/nvim-notify' -- echasnovski Mini Modules (Selected) use { 'echasnovski/mini.move', config = function() require('mini.move').setup({ mappings = { left = '', right = '', down = '', up = '', line_left = '', line_right = '', line_down = '', line_up = '', } }) end } use 'echasnovski/mini.trailspace' use { 'echasnovski/mini.pairs', branch = 'stable', config = function() require('mini.pairs').setup() end } use { 'echasnovski/mini.fuzzy', branch = 'stable', config = function() require('mini.fuzzy').setup() end } ----------------------------------------------------------- -- Markdown Plugins ------------------------------------------------------------ use({ 'jakewvincent/mkdnflow.nvim', config = function() require('mkdnflow').setup({ mappings = { MkdnToggleToDo = {{'i', 'n'}, ''}, MkdnNewListItem = {{'i'}, ''}, MkdnEnter = {{'n'}, ''}, MkdnTableNextCell = false, MkdnTab = {{'i',}, ''}, MkdnSTab = {{'i'}, ''}, MkdnFollowLink = {'n', 'p'} } }) end }) use({ "iamcco/markdown-preview.nvim", run = "cd app && npm install", setup = function() vim.g.mkdp_filetypes = { "markdown" } end, ft = { "markdown" }, }) -- Prettier Plugin for Neovim specifically use'MunifTanjim/prettier.nvim' --------------------------------------------------------- -- Text, Icons, Symbols ---------------------------------------------------------- use 'lukas-reineke/indent-blankline.nvim' use 'simrat39/symbols-outline.nvim' use 'nvim-tree/nvim-web-devicons' use 'folke/lsp-colors.nvim' use 'karb94/neoscroll.nvim' -- Allow Popups for Telescope etc use 'nvim-lua/popup.nvim' use "nvim-lua/plenary.nvim" -- Todo & Comments for Organization use { 'folke/todo-comments.nvim', requires = "nvim-lua/plenary.nvim", config = function() require("todo-comments").setup { keywords = { FIX = { icon = " ", -- icon used for the sign, and in search results color = "error", -- can be a hex color, or a named color (see below) alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords -- signs = false, -- configure signs for some keywords individually }, DONE = { icon = " ", color = "info" }, FEAT = { icon = " ", color = "warning", alt = { "NEED", "REQUEST" } }, WARN = { icon = " ", color = "error", alt = { "WARNING", "ERROR" } }, TODO = { icon = " ", color = "hint", alt = { "TASK", "TBD" } }, NOTE = { icon = " ", color = "hint", alt = { "INFO" } }, SENG = { icon = " ", color = "test", alt = { "SOLUTIONS", "SE", "WORKAROUND" } }, }, highlight = { comments_only = false, }, colors = { error = { "DiagnosticError", "ErrorMsg", "#DC2626" }, warning = { "DiagnosticWarning", "WarningMsg", "#FBBF24" }, info = { "DiagnosticInfo", "#2563EB" }, hint = { "DiagnosticHint", "#10B981" }, default = { "Identifier", "#7C3AED" }, test = { "Identifier", "#FF00FF" } }, } end } -- The all famous telescope use { 'nvim-telescope/telescope.nvim', tag = '0.1.0', requires = { 'nvim-lua/plenary.nvim', 'nvim-telescope/telescope-live-grep-args.nvim', }, config = function() require("telescope").setup({ }) end } use { "nvim-telescope/telescope-file-browser.nvim" } ----------------------------------------------------------- -- Various Color Schemes, Dashboard, etc ----------------------------------------------------------- use 'tanvirtin/monokai.nvim' use 'gbprod/nord.nvim' use 'Mofiqul/dracula.nvim' use 'lunarvim/colorschemes' use { 'rose-pine/neovim', as = 'rose-pine' } use { "catppuccin/nvim", as = "catppuccin" } use { 'feline-nvim/feline.nvim', requires = { 'nvim-tree/nvim-web-devicons' }, } use {"ellisonleao/glow.nvim"} -- Signs for Git Status Information use { 'lewis6991/gitsigns.nvim', config = function() require('gitsigns').setup() end } -- Plugin that causes your code to crumble >:) use 'eandrju/cellular-automaton.nvim' -- The Dashboard use { 'goolord/alpha-nvim', requires = { 'nvim-tree/nvim-web-devicons' }, } end)