dotfiles/home/.config/nvim/lua/plugins/init.lua

181 lines
4.9 KiB
Lua
Raw Normal View History

local fn = vim.fn
-- Install packer if it's not yet installed
2022-08-25 10:42:06 +03:00
local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim'
2022-08-22 14:57:24 +03:00
if fn.empty(fn.glob(install_path)) > 0 then
print('Installing Packer')
2022-08-25 10:42:06 +03:00
Packer_bootstrap = fn.system({
'git', 'clone', '--depth', '1',
'https://github.com/wbthomason/packer.nvim', install_path
})
vim.cmd [[packadd packer.nvim]]
print('Installed Packer')
end
-- Configure packer
require('packer').startup(function()
local use = require('packer').use
-- The plugin manager itself
2022-08-25 10:42:06 +03:00
use {'wbthomason/packer.nvim'}
-- Colorscheme
use {'rebelot/kanagawa.nvim', config = require('plugins.colorscheme')}
-- Statusline
use {
'nvim-lualine/lualine.nvim',
requires = {'kyazdani42/nvim-web-devicons', opt = true},
config = require('plugins.lualine')
}
-- Startup screen/dashboard
use 'glepnir/dashboard-nvim'
2022-08-24 12:09:50 +03:00
-- Git in signcolumn
use 'airblade/vim-gitgutter'
-- Tabline/bufferline
use {
'akinsho/nvim-bufferline.lua',
tag = '*',
requires = 'kyazdani42/nvim-web-devicons',
config = function() require('bufferline').setup {} end
}
-- Git commands
use 'tpope/vim-fugitive'
-- Indent characters
use {
'lukas-reineke/indent-blankline.nvim',
config = require('plugins.indent-blankline')
}
-- Tree explorer
use {
'kyazdani42/nvim-tree.lua',
requires = 'kyazdani42/nvim-web-devicons',
2022-08-24 12:07:21 +03:00
config = require('plugins.nvim-tree')
}
-- Telescope
use {
'nvim-telescope/telescope.nvim',
config = require('plugins.telescope'),
requires = {
{'nvim-lua/plenary.nvim'}, -- Internal dep for telescope
{'nvim-telescope/telescope-fzf-native.nvim', run = 'make'}, -- Use fzf for fuzzy finder
{'nvim-telescope/telescope-ui-select.nvim'} -- Replace vim built in select with telescope
}
}
-- Do stuff as sudo
use 'lambdalisue/suda.vim'
-- Display possible keybinds
2022-09-03 00:11:56 +03:00
use {'folke/which-key.nvim', config = require('plugins.which-key')}
-- Read editorconfig settings
use 'editorconfig/editorconfig-vim'
-- Install LSP server executables
use {
'williamboman/mason.nvim',
config = function() require('mason').setup {} end
}
use {
'williamboman/mason-lspconfig.nvim',
requires = {'ii14/emmylua-nvim'}, -- vim api documentation for lua lsp
config = function()
require('mason-lspconfig').setup {automatic_installation = true}
end
}
-- Configs for built-in LSP
use {'neovim/nvim-lspconfig', config = require('plugins.lspconfig').setup}
-- Additional LSP features for Java
use 'mfussenegger/nvim-jdtls'
-- Display function signature
use 'ray-x/lsp_signature.nvim'
-- Completion
use {
'hrsh7th/nvim-cmp',
requires = {
{'hrsh7th/cmp-buffer'}, -- Buffer source
{'petertriho/cmp-git', requires = "nvim-lua/plenary.nvim"}, -- Git source
{'L3MON4D3/LuaSnip'}, -- Snippets plugin
{'hrsh7th/cmp-nvim-lsp'}, -- LSP source
{'hrsh7th/cmp-nvim-lua'}, -- Neovim Lua API documentation
{'hrsh7th/cmp-path'}, -- Path source
{'rafamadriz/friendly-snippets'}, -- Snippets collection
{'saadparwaiz1/cmp_luasnip'} -- Snippets source
},
config = require('plugins.cmp')
}
-- Automatic brackets
use {
'windwp/nvim-autopairs',
config = function() require('nvim-autopairs').setup {} end
}
-- treesitter
use {
'nvim-treesitter/nvim-treesitter',
run = function()
require('nvim-treesitter.install').update({with_sync = true})
end,
config = require('plugins.treesitter')
}
-- treesitter plugin for commentstring
use 'JoosepAlviste/nvim-ts-context-commentstring'
-- Additional plugins for formats not supported
-- by treesitter
use 'jamespeapen/swayconfig.vim'
-- mappings for commenting in code
use 'tpope/vim-commentary'
-- we all know this one
use 'tpope/vim-surround'
-- Formatter plugin
use 'sbdchd/neoformat'
-- Make editing passwords safer
use {
'https://git.zx2c4.com/password-store',
rtp = 'contrib/vim/redact_pass.vim'
}
-- Neovim inside Firefox
use {
'glacambre/firenvim',
run = function() vim.fn['firenvim#install'](0) end
}
-- Vim <3 Asciidoctor
use 'habamax/vim-asciidoctor'
-- Edit GPG encrypted files transparently
use 'jamessan/vim-gnupg'
-- If Packer was just installed,
-- sync plugins
if Packer_bootstrap then require('packer').sync() end
2022-08-25 10:42:06 +03:00
end)
2022-08-23 09:28:07 +03:00
-- Sync plugins if Packer was just
-- installed
2022-08-23 19:35:56 +03:00
if Packer_installed then
print('Syncing plugins')
require('packer').sync()
2022-08-23 09:28:07 +03:00
end