Files
nvim/lua/plugins/plugins.lua
2022-11-28 19:55:20 -05:00

239 lines
6.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'
------------------------------------------------------------
-- 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
}
use 'rcarriga/nvim-notify'
-----------------------------------------------------------
-- 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
})
-- Headlines Extension
--use 'lukas-reineke/headlines.nvim'
-- Follow MD Links
--use 'jghauser/follow-md-links.nvim'
-- Markdown Preview
-- use({
-- "iamcco/markdown-preview.nvim",
-- run = function() vim.fn["mkdp#util#install"]() end,
--})
use({ "iamcco/markdown-preview.nvim", run = "cd app && npm install", setup = function() vim.g.mkdp_filetypes = { "markdown" } end, ft = { "markdown" }, })
-- use 'chentoast/marks.nvim'
-- 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 = "warning", alt = { "WARNING", "ERROR" } },
TASK = { icon = "", color = "hint", alt = { "TODO", "TBD" } },
NOTE = { icon = "", color = "hint", alt = { "INFO" } },
SENG = { icon = "", color = "test", alt = { "SOLUTIONS", "SE", "WORKAROUND" } },
},
highlight = {
comments_only = false,
},
})
end
}
-- The all famous telescope
use {
'nvim-telescope/telescope.nvim', tag = '0.1.0',
requires = 'nvim-lua/plenary.nvim',
config = function()
require("telescope").setup({
})
end
}
use {
"nvim-telescope/telescope-file-browser.nvim"
}
-----------------------------------------------------------
-- Various Color Schemes, Dashboard, etc
-----------------------------------------------------------
use 'tanvirtin/monokai.nvim'
use 'Mofiqul/dracula.nvim'
use 'lunarvim/colorschemes'
use { 'rose-pine/neovim', as = 'rose-pine' }
use 'folke/tokyonight.nvim'
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
}
-- The Dashboard
use {
'goolord/alpha-nvim',
requires = { 'nvim-tree/nvim-web-devicons' },
}
end)