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 { 'aznhe21/actions-preview.nvim', config = function() vim.keymap.set("n", "ca", require("actions-preview").code_actions) end, } use { 'folke/trouble.nvim' } -- lsp diagnostics -- Plugins to extend builtin language support 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' } -- intellij idea to nvim o_O use { 'Shougo/deoplete.nvim' } use { 'beeender/Comrade' } use({ 'MeanderingProgrammer/render-markdown.nvim', after = { 'nvim-treesitter' }, requires = { 'echasnovski/mini.nvim', opt = true }, -- if you use the mini.nvim suite -- requires = { 'echasnovski/mini.icons', opt = true }, -- if you use standalone mini plugins -- requires = { 'nvim-tree/nvim-web-devicons', opt = true }, -- if you prefer nvim-web-devicons config = function() require('render-markdown').setup({}) end, }) end) require('plugins.cmp') require('plugins.gitsigns') require('plugins.neogit') require('plugins.oil') require('plugins.telescope') require('plugins.venn')