aboutsummaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorDamjan 9000 <damjan.9000@gmail.com>2023-10-22 11:50:38 +0200
committerDamjan 9000 <damjan.9000@gmail.com>2023-11-03 21:01:49 +0100
commitbc8966a42cd890c12c50935852d0bcf2cb002932 (patch)
tree050f007b00889ade22af7453e5485941d0abf844 /lua
parent5623cd033f823f06afa75739813066b13aa39598 (diff)
Added lua/lazy-plugins.lua
Diffstat (limited to 'lua')
-rw-r--r--lua/lazy-plugins.lua173
1 files changed, 173 insertions, 0 deletions
diff --git a/lua/lazy-plugins.lua b/lua/lazy-plugins.lua
new file mode 100644
index 0000000..03418e2
--- /dev/null
+++ b/lua/lazy-plugins.lua
@@ -0,0 +1,173 @@
+-- [[ Setup lazy plugin manager ]]
+-- NOTE: Here is where you install your plugins.
+-- You can configure plugins using the `config` key.
+--
+-- You can also configure plugins after the setup call,
+-- as they will be available in your neovim runtime.
+require('lazy').setup({
+ -- NOTE: First, some plugins that don't require any configuration
+
+ -- Git related plugins
+ 'tpope/vim-fugitive',
+ 'tpope/vim-rhubarb',
+
+ -- Detect tabstop and shiftwidth automatically
+ 'tpope/vim-sleuth',
+
+ -- NOTE: This is where your plugins related to LSP can be installed.
+ -- The configuration is done below. Search for lspconfig to find it below.
+ {
+ -- LSP Configuration & Plugins
+ 'neovim/nvim-lspconfig',
+ dependencies = {
+ -- Automatically install LSPs to stdpath for neovim
+ 'williamboman/mason.nvim',
+ 'williamboman/mason-lspconfig.nvim',
+
+ -- Useful status updates for LSP
+ -- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})`
+ { 'j-hui/fidget.nvim', tag = 'legacy', opts = {} },
+
+ -- Additional lua configuration, makes nvim stuff amazing!
+ 'folke/neodev.nvim',
+ },
+ },
+
+ {
+ -- Autocompletion
+ 'hrsh7th/nvim-cmp',
+ dependencies = {
+ -- Snippet Engine & its associated nvim-cmp source
+ 'L3MON4D3/LuaSnip',
+ 'saadparwaiz1/cmp_luasnip',
+
+ -- Adds LSP completion capabilities
+ 'hrsh7th/cmp-nvim-lsp',
+
+ -- Adds a number of user-friendly snippets
+ 'rafamadriz/friendly-snippets',
+ },
+ },
+
+ -- Useful plugin to show you pending keybinds.
+ { 'folke/which-key.nvim', opts = {} },
+ {
+ -- Adds git related signs to the gutter, as well as utilities for managing changes
+ 'lewis6991/gitsigns.nvim',
+ opts = {
+ -- See `:help gitsigns.txt`
+ signs = {
+ add = { text = '+' },
+ change = { text = '~' },
+ delete = { text = '_' },
+ topdelete = { text = '‾' },
+ changedelete = { text = '~' },
+ },
+ on_attach = function(bufnr)
+ vim.keymap.set('n', '<leader>hp', require('gitsigns').preview_hunk, { buffer = bufnr, desc = 'Preview git hunk' })
+
+ -- don't override the built-in and fugitive keymaps
+ local gs = package.loaded.gitsigns
+ vim.keymap.set({ 'n', 'v' }, ']c', function()
+ if vim.wo.diff then
+ return ']c'
+ end
+ vim.schedule(function()
+ gs.next_hunk()
+ end)
+ return '<Ignore>'
+ end, { expr = true, buffer = bufnr, desc = 'Jump to next hunk' })
+ vim.keymap.set({ 'n', 'v' }, '[c', function()
+ if vim.wo.diff then
+ return '[c'
+ end
+ vim.schedule(function()
+ gs.prev_hunk()
+ end)
+ return '<Ignore>'
+ end, { expr = true, buffer = bufnr, desc = 'Jump to previous hunk' })
+ end,
+ },
+ },
+
+ {
+ -- Theme inspired by Atom
+ 'navarasu/onedark.nvim',
+ priority = 1000,
+ config = function()
+ vim.cmd.colorscheme 'onedark'
+ end,
+ },
+
+ {
+ -- Set lualine as statusline
+ 'nvim-lualine/lualine.nvim',
+ -- See `:help lualine.txt`
+ opts = {
+ options = {
+ icons_enabled = false,
+ theme = 'onedark',
+ component_separators = '|',
+ section_separators = '',
+ },
+ },
+ },
+
+ {
+ -- Add indentation guides even on blank lines
+ 'lukas-reineke/indent-blankline.nvim',
+ -- Enable `lukas-reineke/indent-blankline.nvim`
+ -- See `:help ibl`
+ main = 'ibl',
+ opts = {},
+ },
+
+ -- "gc" to comment visual regions/lines
+ { 'numToStr/Comment.nvim', opts = {} },
+
+ -- Fuzzy Finder (files, lsp, etc)
+ {
+ 'nvim-telescope/telescope.nvim',
+ branch = '0.1.x',
+ dependencies = {
+ 'nvim-lua/plenary.nvim',
+ -- Fuzzy Finder Algorithm which requires local dependencies to be built.
+ -- Only load if `make` is available. Make sure you have the system
+ -- requirements installed.
+ {
+ 'nvim-telescope/telescope-fzf-native.nvim',
+ -- NOTE: If you are having trouble with this installation,
+ -- refer to the README for telescope-fzf-native for more instructions.
+ build = 'make',
+ cond = function()
+ return vim.fn.executable 'make' == 1
+ end,
+ },
+ },
+ },
+
+ {
+ -- Highlight, edit, and navigate code
+ 'nvim-treesitter/nvim-treesitter',
+ dependencies = {
+ 'nvim-treesitter/nvim-treesitter-textobjects',
+ },
+ build = ':TSUpdate',
+ },
+
+ -- NOTE: Next Step on Your Neovim Journey: Add/Configure additional "plugins" for kickstart
+ -- These are some example plugins that I've included in the kickstart repository.
+ -- Uncomment any of the lines below to enable them.
+ -- require 'kickstart.plugins.autoformat',
+ -- require 'kickstart.plugins.debug',
+
+ -- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
+ -- You can use this folder to prevent any conflicts with this init.lua if you're interested in keeping
+ -- up-to-date with whatever is in the kickstart repo.
+ -- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
+ --
+ -- For additional information see: https://github.com/folke/lazy.nvim#-structuring-your-plugins
+ -- { import = 'custom.plugins' },
+}, {})
+
+-- vim: ts=2 sts=2 sw=2 et