summaryrefslogtreecommitdiff
path: root/lua/plugins/plugins.lua
blob: 4a340d02b5fd38f21f303d0b9e2bd2a538ee3309 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
-- Automatically install packer
local fn = vim.fn
local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim'

if fn.empty(fn.glob(install_path)) > 0 then
	packer_bootstrap = fn.system({
		'git',
		'clone',
		'--depth',
		'1',
		'https://github.com/wbthomason/packer.nvim',
		install_path
	})
	vim.o.runtimepath = vim.fn.stdpath('data') .. '/site/pack/*/start/*,' .. vim.o.runtimepath
end

-- Autocommand that reloads neovim whenever you save the packer_init.lua file
vim.cmd [[
augroup packer_user_config
autocmd!
autocmd BufWritePost packer_init.lua source <afile> | PackerSync
augroup end
]]

-- Use a protected call so we don't error out on first use
local status_ok, packer = pcall(require, 'packer')
if not status_ok then
	return
end

-- Only required if you have packer configured as `opt`
return packer.startup(function(use)
	-- Packer can manage itself
	use 'wbthomason/packer.nvim'

	-- Color scheme
	use {'nyoom-engineering/oxocarbon.nvim'}
	use {'rebelot/kanagawa.nvim'}

	-- File tree
	use 'nvim-tree/nvim-tree.lua'

	-- Completion and language server
	use {'neovim/nvim-lspconfig'} -- Collection of configurations for built-in LSP client
	use {'hrsh7th/cmp-nvim-lsp'} -- LSP source for nvim-cmp
	use {'hrsh7th/cmp-buffer'} -- LSP source nvim-cmp
	use {'hrsh7th/cmp-path'} -- LSP source for nvim-cmp
	use {'hrsh7th/cmp-cmdline'} -- LSP source nvim-cmp
	use {'hrsh7th/cmp-nvim-lsp-signature-help'}
	use {'hrsh7th/nvim-cmp'} -- Autocompletion plugin
	use {'hrsh7th/cmp-nvim-lua'}
	use {'saadparwaiz1/cmp_luasnip'} -- Snippets source for nvim-cmp
	use {'L3MON4D3/LuaSnip'} -- Snippets plugin
	use {"rafamadriz/friendly-snippets"}
	use({"petertriho/cmp-git", requires = "nvim-lua/plenary.nvim"})

	-- Show color under hex codes
	use {'norcalli/nvim-colorizer.lua'}

	-- Productivity plugins
	use {'windwp/nvim-autopairs'} -- Auto pairs
	use {'preservim/nerdcommenter'} -- Easy commenting
	use {'dhruvasagar/vim-table-mode', ft = {'markdown', 'markdown.pandoc'} } -- Markdown easy tables
	use {'junegunn/fzf', run = ":call fzf#install()" }
	use {'junegunn/fzf.vim' } -- Fuzzy file finding
	use {'tpope/vim-surround'} -- Easy surrounding with brackets, quotes ...
	use {'junegunn/vim-easy-align'} -- Easy aling with space, = ...

	-- Writing
	use {'junegunn/goyo.vim', ft = {'markdown', 'markdown.pandoc', 'tex', 'c'}}
	use {'junegunn/limelight.vim', ft = {'markdown', 'markdown.pandoc', 'tex', 'c'}}

	use { 'vim-pandoc/vim-pandoc-syntax', ft = { 'markdown', 'markdown.pandoc' } }
	use { 'lervag/vimtex', ft = { 'tex' } }

	-- Git intigration
	use { 'tpope/vim-fugitive', ft = {'cpp', 'c'} }

	-- Treesitter integration
	use { 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate' }

	-- Show git signs and stage hunks
	use { 'lewis6991/gitsigns.nvim' }

	use { 'nvim-lualine/lualine.nvim' }

	-- Automatically set up your configuration after cloning packer.nvim
	-- Put this at the end after all plugins
	if packer_bootstrap then
		require('packer').sync()
	end
end)