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)
|