summaryrefslogtreecommitdiff
path: root/lua/plugins
diff options
context:
space:
mode:
authorDavid Luevano Alvarado <david@luevano.xyz>2023-06-04 01:23:39 -0600
committerDavid Luevano Alvarado <david@luevano.xyz>2023-06-04 01:23:39 -0600
commit7697c03eba943b8512e8e24583c0c17f9ef02aa9 (patch)
tree9372e7e792249a77a439e72898bca07b560039ca /lua/plugins
parent87354704f0eefa327f676d38fc3fdf9eb2bcfb9c (diff)
finish separating up the plugins, in general
Diffstat (limited to 'lua/plugins')
-rw-r--r--lua/plugins/autocompletion.lua49
-rw-r--r--lua/plugins/gitsigns.lua18
-rw-r--r--lua/plugins/indent-blankline.lua7
-rw-r--r--lua/plugins/init.lua33
4 files changed, 73 insertions, 34 deletions
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 {
+ ['<C-n>'] = cmp.mapping.select_next_item(),
+ ['<C-p>'] = cmp.mapping.select_prev_item(),
+ ['<C-d>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete {},
+ ['<CR>'] = cmp.mapping.confirm {
+ behavior = cmp.ConfirmBehavior.Replace,
+ select = true,
+ },
+ ['<Tab>'] = 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' }),
+ ['<S-Tab>'] = 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', '<leader>gp', gitsigns.prev_hunk, { buffer = bufnr, desc = '[G]o to [P]revious Hunk' })
+ vim.keymap.set('n', '<leader>gn', gitsigns.next_hunk, { buffer = bufnr, desc = '[G]o to [N]ext Hunk' })
+ vim.keymap.set('n', '<leader>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', '<leader>gp', require('gitsigns').prev_hunk, { buffer = bufnr, desc = '[G]o to [P]revious Hunk' })
- vim.keymap.set('n', '<leader>gn', require('gitsigns').next_hunk, { buffer = bufnr, desc = '[G]o to [N]ext Hunk' })
- vim.keymap.set('n', '<leader>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 = {} },
-
}