summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init.lua48
-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
5 files changed, 74 insertions, 81 deletions
diff --git a/init.lua b/init.lua
index 7296e77..d0c9eab 100644
--- a/init.lua
+++ b/init.lua
@@ -17,6 +17,7 @@ if not vim.loop.fs_stat(lazypath) then
end
vim.opt.rtp:prepend(lazypath)
+-- Start plugin manager lazy.nvim, super important
require('lazy').setup('plugins', {})
-- [[ Setting options ]]
@@ -81,50 +82,3 @@ vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous dia
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' })
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' })
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' })
-
--- [[ Configure nvim-cmp ]]
-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' },
- },
-}
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 = {} },
-
}