Files
nvim/lua/plugins/plugins.lua

272 lines
7.3 KiB
Lua
Executable File

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 = '<S-left>',
right = '<S-right>',
down = '<S-down>',
up = '<S-up>',
line_left = '<S-left>',
line_right = '<S-right>',
line_down = '<S-down>',
line_up = '<S-up>',
}
})
end
}
use 'echasnovski/mini.trailspace'
use 'echasnovski/mini.pairs'
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'}, '<C-Space>'},
MkdnNewListItem = {{'i'}, '<CR>'},
MkdnEnter = {{'n'}, '<CR>'},
MkdnTableNextCell = false,
MkdnTab = {{'i',}, '<Tab>'},
MkdnSTab = {{'i'}, '<S-Tab>'},
MkdnFollowLink = {'n', '<leader>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)