From 7697c03eba943b8512e8e24583c0c17f9ef02aa9 Mon Sep 17 00:00:00 2001 From: David Luevano Alvarado Date: Sun, 4 Jun 2023 01:23:39 -0600 Subject: finish separating up the plugins, in general --- lua/plugins/autocompletion.lua | 49 +++++++++++++++++++++++++++++++++++++++- lua/plugins/gitsigns.lua | 18 +++++++++++++++ lua/plugins/indent-blankline.lua | 7 ++++++ lua/plugins/init.lua | 33 --------------------------- 4 files changed, 73 insertions(+), 34 deletions(-) create mode 100644 lua/plugins/gitsigns.lua create mode 100644 lua/plugins/indent-blankline.lua (limited to 'lua/plugins') diff --git a/lua/plugins/autocompletion.lua b/lua/plugins/autocompletion.lua index 333c4fe..1ba7ead 100644 --- a/lua/plugins/autocompletion.lua +++ b/lua/plugins/autocompletion.lua @@ -2,11 +2,58 @@ return { 'hrsh7th/nvim-cmp', dependencies = { -- Snippet Engine & its associated nvim-cmp source - 'L3MON4D3/LuaSnip', + { 'L3MON4D3/LuaSnip', opts = {} }, 'saadparwaiz1/cmp_luasnip', -- Adds LSP completion capabilities 'hrsh7th/cmp-nvim-lsp', -- Adds a number of user-friendly snippets 'rafamadriz/friendly-snippets', }, + config = function() + local cmp = require('cmp') + local luasnip = require('luasnip') + require('luasnip.loaders.from_vscode').lazy_load() + -- luasnip.config.setup {} + + cmp.setup { + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert { + [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping.select_prev_item(), + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete {}, + [''] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.Replace, + select = true, + }, + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_locally_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { 'i', 's' }), + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.locally_jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { 'i', 's' }), + }, + sources = { + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + }, + } + end, } diff --git a/lua/plugins/gitsigns.lua b/lua/plugins/gitsigns.lua new file mode 100644 index 0000000..7745cf3 --- /dev/null +++ b/lua/plugins/gitsigns.lua @@ -0,0 +1,18 @@ +return { + 'lewis6991/gitsigns.nvim', + opts = { + signs = { + add = { text = '+' }, + change = { text = '~' }, + delete = { text = '_' }, + topdelete = { text = '‾' }, + changedelete = { text = '~' }, + }, + on_attach = function(bufnr) + local gitsigns = require('gitsigns') + vim.keymap.set('n', 'gp', gitsigns.prev_hunk, { buffer = bufnr, desc = '[G]o to [P]revious Hunk' }) + vim.keymap.set('n', 'gn', gitsigns.next_hunk, { buffer = bufnr, desc = '[G]o to [N]ext Hunk' }) + vim.keymap.set('n', 'ph', gitsigns.preview_hunk, { buffer = bufnr, desc = '[P]review [H]unk' }) + end, + }, +} diff --git a/lua/plugins/indent-blankline.lua b/lua/plugins/indent-blankline.lua new file mode 100644 index 0000000..0bf31ec --- /dev/null +++ b/lua/plugins/indent-blankline.lua @@ -0,0 +1,7 @@ +return { + 'lukas-reineke/indent-blankline.nvim', + opts = { + char = '┊', + show_trailing_blankline_indent = false, + }, +} diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index e8b57ab..6c9cc8c 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -2,44 +2,11 @@ return { -- Git related plugins 'tpope/vim-fugitive', 'tpope/vim-rhubarb', - -- Detect tabstop and shiftwidth automatically -- luevano: not sure how I feel about this, need to check later 'tpope/vim-sleuth', - - -- Useful plugin to show you pending keybinds. { 'folke/which-key.nvim', opts = {} }, - { - -- Adds git releated signs to the gutter, as well as utilities for managing changes - 'lewis6991/gitsigns.nvim', - opts = { - signs = { - add = { text = '+' }, - change = { text = '~' }, - delete = { text = '_' }, - topdelete = { text = '‾' }, - changedelete = { text = '~' }, - }, - on_attach = function(bufnr) - vim.keymap.set('n', 'gp', require('gitsigns').prev_hunk, { buffer = bufnr, desc = '[G]o to [P]revious Hunk' }) - vim.keymap.set('n', 'gn', require('gitsigns').next_hunk, { buffer = bufnr, desc = '[G]o to [N]ext Hunk' }) - vim.keymap.set('n', 'ph', require('gitsigns').preview_hunk, { buffer = bufnr, desc = '[P]review [H]unk' }) - end, - }, - }, - - { - -- Add indentation guides even on blank lines - 'lukas-reineke/indent-blankline.nvim', - -- Enable `lukas-reineke/indent-blankline.nvim` - opts = { - char = '┊', - show_trailing_blankline_indent = false, - }, - }, - -- "gc" to comment visual regions/lines { 'numToStr/Comment.nvim', opts = {} }, - } -- cgit v1.2.3-70-g09d2