185 lines
4.9 KiB
Lua
185 lines
4.9 KiB
Lua
local fn = vim.fn
|
|
|
|
-- boostrap packer
|
|
local install_path = fn.stdpath('data') .. '/site/pack/packer/opt/packer.nvim'
|
|
local packer_bootstrap
|
|
if fn.empty(fn.glob(install_path)) > 0 then
|
|
packer_bootstrap = fn.system({
|
|
'git', 'clone', 'https://github.com/wbthomason/packer.nvim',
|
|
install_path
|
|
})
|
|
end
|
|
|
|
-- run PackerSync everytime plugins.lua is updated
|
|
vim.cmd([[
|
|
augroup packer_user_config
|
|
autocmd!
|
|
autocmd BufWritePost plugins.lua source <afile> | PackerSync
|
|
augroup end
|
|
]])
|
|
|
|
vim.cmd([[packadd packer.nvim]])
|
|
|
|
-- initialize plugins
|
|
return require('packer').startup(function(use)
|
|
-- let packer manage itself
|
|
use({ 'wbthomason/packer.nvim', opt = true })
|
|
|
|
-- theme
|
|
use("ishan9299/nvim-solarized-lua")
|
|
|
|
-- commenting
|
|
use {
|
|
'numToStr/Comment.nvim',
|
|
config = function() require('Comment').setup({}) end
|
|
}
|
|
|
|
-- session handling
|
|
use('tpope/vim-obsession')
|
|
use('dhruvasagar/vim-prosession')
|
|
|
|
-- tabline
|
|
use {
|
|
'kdheepak/tabline.nvim',
|
|
config = function()
|
|
require 'tabline'.setup {
|
|
enable = true,
|
|
options = { show_bufnr = true, show_filename_only = true }
|
|
}
|
|
end,
|
|
requires = {
|
|
{ 'hoob3rt/lualine.nvim' },
|
|
{ 'kyazdani42/nvim-web-devicons', opt = true }
|
|
}
|
|
}
|
|
|
|
-- status line
|
|
use {
|
|
'nvim-lualine/lualine.nvim',
|
|
requires = { 'kyazdani42/nvim-web-devicons', opt = true },
|
|
config = function()
|
|
require('lualine').setup({
|
|
options = { globalstatus = true },
|
|
sections = {
|
|
lualine_c = { { "filename", path = 1 }, "require('lsp-status').status()" }
|
|
},
|
|
extensions = { "toggleterm" }
|
|
})
|
|
end
|
|
}
|
|
|
|
-- blankline
|
|
use({
|
|
"lukas-reineke/indent-blankline.nvim",
|
|
config = function()
|
|
require("indent_blankline").setup {
|
|
char = "┊",
|
|
buftype_exclude = { "terminal", "help", "nofile" },
|
|
filetype_exclude = { 'help', 'packer' },
|
|
show_trailing_blankline_indent = false
|
|
}
|
|
end
|
|
})
|
|
|
|
-- git
|
|
use('tpope/vim-fugitive')
|
|
use({
|
|
'lewis6991/gitsigns.nvim',
|
|
requires = { 'nvim-lua/plenary.nvim' },
|
|
config = function() require('gitsigns').setup() end
|
|
})
|
|
use("junegunn/gv.vim")
|
|
|
|
-- autocompletion
|
|
use({
|
|
"L3MON4D3/LuaSnip",
|
|
requires = { "rafamadriz/friendly-snippets" },
|
|
config = function()
|
|
require("luasnip.loaders.from_vscode").lazy_load()
|
|
end
|
|
})
|
|
use({
|
|
"hrsh7th/nvim-cmp",
|
|
requires = {
|
|
"hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-buffer", "hrsh7th/cmp-path",
|
|
"hrsh7th/cmp-cmdline", "hrsh7th/cmp-git", "hrsh7th/cmp-nvim-lua",
|
|
"saadparwaiz1/cmp_luasnip", "hrsh7th/cmp-nvim-lsp-signature-help",
|
|
"davidsierradz/cmp-conventionalcommits", "hrsh7th/cmp-nvim-lua",
|
|
"hrsh7th/cmp-calc"
|
|
},
|
|
config = function() require('plugins.nvim-cmp') end,
|
|
})
|
|
|
|
-- language server
|
|
use {
|
|
'junnplus/nvim-lsp-setup',
|
|
requires = {
|
|
'neovim/nvim-lspconfig',
|
|
'williamboman/nvim-lsp-installer',
|
|
|
|
-- additional rust tools
|
|
"simrat39/rust-tools.nvim",
|
|
|
|
-- highlight current symbol
|
|
"RRethy/vim-illuminate",
|
|
|
|
-- lua plugin development
|
|
"folke/lua-dev.nvim",
|
|
|
|
-- lsp status
|
|
"nvim-lua/lsp-status.nvim",
|
|
},
|
|
config = function() require('plugins.nvim-lsp-setup') end,
|
|
}
|
|
|
|
-- treesitter
|
|
use({
|
|
'nvim-treesitter/nvim-treesitter',
|
|
config = function() require('plugins.treesitter') end,
|
|
run = ':TSUpdate'
|
|
})
|
|
|
|
-- Telescope
|
|
use({
|
|
"nvim-telescope/telescope.nvim",
|
|
requires = {
|
|
{ "nvim-lua/plenary.nvim" },
|
|
{ "nvim-telescope/telescope-fzf-native.nvim", run = "make" },
|
|
{ "nvim-telescope/telescope-ui-select.nvim" },
|
|
},
|
|
config = function() require("plugins.telescope") end
|
|
})
|
|
|
|
-- automatic pairs
|
|
use({ "Raimondi/delimitMate" })
|
|
|
|
-- markdown preview
|
|
use({ "iamcco/markdown-preview.nvim", run = ":call mkdp#util#install()" })
|
|
|
|
-- terminal
|
|
use({
|
|
"akinsho/nvim-toggleterm.lua",
|
|
config = function()
|
|
require("toggleterm").setup({ size = 32, open_mapping = [[<F4>]] })
|
|
end
|
|
})
|
|
|
|
-- buffer closing
|
|
use({ "sar/bbye.nvim" })
|
|
|
|
-- ansible filetype
|
|
use({ "pearofducks/ansible-vim" })
|
|
|
|
-- nvim-notify
|
|
use({ "rcarriga/nvim-notify",
|
|
config = function()
|
|
require("notify").setup({
|
|
stages = "fade",
|
|
})
|
|
vim.notify = require("notify")
|
|
end
|
|
})
|
|
|
|
if packer_bootstrap then require('packer').sync() end
|
|
end)
|