dotfiles/lua/plugins/init.lua

89 lines
2.3 KiB
Lua

require('plugins.packer_setup')
require('packer').startup(function()
-- Packer can manage itself as an optional plugin
use {'wbthomason/packer.nvim', opt = true }
-- Fuzzy finder
use {
'nvim-telescope/telescope.nvim',
requires = {
{'nvim-lua/popup.nvim'},
{'nvim-lua/plenary.nvim'},
}
}
-- Autocomplete and snippets
use {
'hrsh7th/nvim-cmp',
requires = {
{ 'hrsh7th/cmp-nvim-lsp' },
{ 'hrsh7th/cmp-buffer' },
{ 'hrsh7th/cmp-path' },
{ 'hrsh7th/cmp-cmdline' },
}
}
use { 'L3MON4D3/LuaSnip',
config = function ()
local snippet_path = os.getenv("HOME") .. "/.config/nvim/snippets/"
if not vim.tbl_contains(vim.opt.rtp:get(), snippet_path) then
vim.opt.rtp:append(snippet_path)
end
require("luasnip").config.set_config({
history = true,
updateevents = "TextChanged,TextChangedI",
delete_check_events = "TextChanged,InsertLeave",
})
require("luasnip.loaders.from_lua").lazy_load()
require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_snipmate").lazy_load()
end,
requires = {
{ "rafamadriz/friendly-snippets" },
{ 'saadparwaiz1/cmp_luasnip' },
{ "benfowler/telescope-luasnip.nvim" },
},
}
-- Statusbar, colors and syntax
use { 'vim-airline/vim-airline' }
use { 'vim-airline/vim-airline-themes' }
-- LSP and related
use { 'neovim/nvim-lspconfig' }
use { 'weilbith/nvim-code-action-menu', cmd = 'CodeActionMenu' }
use { 'folke/trouble.nvim' } -- lsp diagnostics
-- Languages that need a plugin to extend default lsp
use { 'cespare/vim-toml' }
use { 'gleam-lang/gleam.vim' }
use { 'rust-lang/rust.vim' }
use { 'folke/neodev.nvim' }
-- Git
use {
'NeogitOrg/neogit',
requires = {
{ "nvim-lua/plenary.nvim" },
{ "sindrets/diffview.nvim" },
},
}
use { "lewis6991/gitsigns.nvim" }
-- Filesystem browser
use { 'stevearc/oil.nvim' }
-- Misc
use { 'jbyuki/venn.nvim' } -- ascii diagrams
use { 'hashivim/vim-terraform' }
end)
require('plugins.cmp')
require('plugins.gitsigns')
require('plugins.neogit')
require('plugins.oil')
require('plugins.telescope')
require('plugins.venn')