-- NOTE: lazy.nvim reads plugins/*.lua, so feel free to break these up into convenient chunks return { {'SirVer/ultisnips'}, {'honza/vim-snippets'}, {'williamboman/mason.nvim', config = function() require("mason").setup() end }, {'williamboman/mason-lspconfig.nvim'}, {'neovim/nvim-lspconfig', config = function() require'lspconfig'.gopls.setup{ 'gopls' } end }, {'simrat39/rust-tools.nvim', config = function() local rt = require('rust-tools') rt.setup({ server = { on_attach = function(_, bufnr) -- Hover actions vim.keymap.set('n', '', rt.hover_actions.hover_actions, { buffer = bufnr }) -- Code action groups vim.keymap.set('n', 'a', rt.code_action_group.code_action_group, { buffer = bufnr }) end, }, }) end }, {'hrsh7th/nvim-cmp', config = function() -- Completion Plugin Setup local cmp = require'cmp' cmp.setup({ -- Enable LSP snippets snippet = { expand = function(args) vim.fn["vsnip#anonymous"](args.body) end, }, mapping = { [''] = cmp.mapping.select_prev_item(), [''] = cmp.mapping.select_next_item(), -- Add tab support [''] = cmp.mapping.select_prev_item(), [''] = cmp.mapping.select_next_item(), [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.close(), [''] = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = true, }) }, -- Installed sources: sources = { { name = 'path' }, -- file paths { name = 'nvim_lsp', keyword_length = 3 }, -- from language server { name = 'nvim_lsp_signature_help'}, -- display function signatures with current parameter emphasized { name = 'nvim_lua', keyword_length = 2}, -- complete neovim's Lua runtime API such vim.lsp.* { name = 'buffer', keyword_length = 2 }, -- source current buffer { name = 'vsnip', keyword_length = 2 }, -- nvim-cmp source for vim-vsnip { name = 'calc'}, -- source for math calculation }, window = { completion = cmp.config.window.bordered(), documentation = cmp.config.window.bordered(), }, formatting = { fields = {'menu', 'abbr', 'kind'}, format = function(entry, item) local menu_icon ={ nvim_lsp = 'λ', vsnip = '⋗', buffer = 'Ω', path = '🖫', } item.menu = menu_icon[entry.source.name] return item end, }, }) end }, {'hrsh7th/cmp-nvim-lsp'}, {'hrsh7th/cmp-nvim-lua'}, {'hrsh7th/cmp-nvim-lsp-signature-help'}, {'hrsh7th/cmp-vsnip'}, {'hrsh7th/cmp-path'}, {'hrsh7th/cmp-buffer'}, {'hrsh7th/vim-vsnip'}, {'atelierbram/vim-colors_atelier-schemes'}, -- {'liuchengxu/space-vim-dark'}, {'robertmeta/nofrils'}, {'vim-test/vim-test'}, {'hashivim/vim-terraform'}, {'rmagatti/auto-session'}, {'ludovicchabant/vim-gutentags'}, {'preservim/nerdtree'}, {'junegunn/fzf', dir='~/.fzf'}, {'junegunn/fzf.vim'}, {'mhinz/vim-startify'}, {'jeetsukumaran/vim-buffergator'}, {'ap/vim-buftabline'}, {'airblade/vim-gitgutter'}, {'majutsushi/tagbar'}, {'nvim-lualine/lualine.nvim', requires = { 'kyazdani42/nvim-web-devicons', opt = true } }, {'arkav/lualine-lsp-progress', config = function() require('lualine').setup({ options = { theme = 'palenight' }, sections = { lualine_b ={ {'filename', path=1} }, lualine_c = { 'lsp_progress' } }, inactive_sections = { lualine_a = {}, lualine_b ={ {'filename', path=1} }, lualine_c = {}, lualine_d = {}, lualine_e = {}, } }) end }, {'voldikss/vim-floaterm'}, {'fatih/vim-go'}, {'whatyouhide/vim-gotham'}, {'nanotech/jellybeans.vim'}, {'sickill/vim-monokai'}, {'tpope/vim-fugitive'}, {'tpope/vim-rhubarb'}, {'gf3/peg.vim'}, {'nvim-lua/plenary.nvim'}, { 'nvim-telescope/telescope.nvim', config = function () require('telescope').setup{ file_ignore_patterns = {'node_modules','./venv/'} } end }, {'nvim-telescope/telescope-project.nvim'}, -- require'telescope'.load_extension('project') {'puremourning/vimspector'}, {'airblade/vim-rooter'}, -- Debugging { 'mfussenegger/nvim-dap'}, {'lukas-reineke/indent-blankline.nvim'}, {'fredeeb/tardis.nvim', config = function() require('tardis-nvim').setup({ keymap = { next = '', -- next entry in log (older) prev = '', -- previous entry in log (newer) quit = 'q', -- quit all commit_message = 'm', -- show commit message for current commit in buffer }, commits = 32, -- max number of commits to read }) end }, {'nvim-treesitter/nvim-treesitter', run = ':TSUpdate' , config = function() require("nvim-treesitter.configs").setup({ highlight = { enable = true, disable = { "lua" } }, indent = { enable = true }, refactor = { highlight_definitions = { enable = true } }, incremental_selection = { enable = true }, matchup = { enable = true }, textsubjects = { enable = true, prev_selection = ",", keymaps = { ["."] = "textsubjects-smart", }, }, }) end }, {'nvim-treesitter/nvim-treesitter-refactor'}, {'RRethy/nvim-treesitter-textsubjects'}, }