aboutsummaryrefslogtreecommitdiff
path: root/lua/lazy-plugins.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lazy-plugins.lua')
-rw-r--r--lua/lazy-plugins.lua270
1 files changed, 58 insertions, 212 deletions
diff --git a/lua/lazy-plugins.lua b/lua/lazy-plugins.lua
index f0bd01e..e2686fd 100644
--- a/lua/lazy-plugins.lua
+++ b/lua/lazy-plugins.lua
@@ -1,225 +1,71 @@
--- [[ Configure plugins ]]
--- NOTE: Here is where you install your plugins.
--- You can configure plugins using the `config` key.
+-- [[ Configure and install plugins ]]
+--
+-- To check the current status of your plugins, run
+-- :Lazy
+--
+-- You can press `?` in this menu for help. Use `:q` to close the window
--
--- You can also configure plugins after the setup call,
--- as they will be available in your neovim runtime.
+-- To update plugins, you can run
+-- :Lazy update
+--
+-- NOTE: Here is where you install your plugins.
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', config = true },
- 'williamboman/mason-lspconfig.nvim',
-
- -- Useful status updates for LSP
- -- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})`
- { 'j-hui/fidget.nvim', 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',
- build = (function()
- -- Build Step is needed for regex support in snippets
- -- This step is not supported in many windows environments
- -- Remove the below condition to re-enable on windows
- if vim.fn.has 'win32' == 1 then
- return
- end
- return 'make install_jsregexp'
- end)(),
- },
- 'saadparwaiz1/cmp_luasnip',
-
- -- Adds LSP completion capabilities
- 'hrsh7th/cmp-nvim-lsp',
- 'hrsh7th/cmp-path',
-
- -- 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)
- local gs = package.loaded.gitsigns
-
- local function map(mode, l, r, opts)
- opts = opts or {}
- opts.buffer = bufnr
- vim.keymap.set(mode, l, r, opts)
- end
-
- -- Navigation
- map({ 'n', 'v' }, ']c', function()
- if vim.wo.diff then
- return ']c'
- end
- vim.schedule(function()
- gs.next_hunk()
- end)
- return '<Ignore>'
- end, { expr = true, desc = 'Jump to next hunk' })
-
- map({ 'n', 'v' }, '[c', function()
- if vim.wo.diff then
- return '[c'
- end
- vim.schedule(function()
- gs.prev_hunk()
- end)
- return '<Ignore>'
- end, { expr = true, desc = 'Jump to previous hunk' })
-
- -- Actions
- -- visual mode
- map('v', '<leader>hs', function()
- gs.stage_hunk { vim.fn.line '.', vim.fn.line 'v' }
- end, { desc = 'stage git hunk' })
- map('v', '<leader>hr', function()
- gs.reset_hunk { vim.fn.line '.', vim.fn.line 'v' }
- end, { desc = 'reset git hunk' })
- -- normal mode
- map('n', '<leader>hs', gs.stage_hunk, { desc = 'git stage hunk' })
- map('n', '<leader>hr', gs.reset_hunk, { desc = 'git reset hunk' })
- map('n', '<leader>hS', gs.stage_buffer, { desc = 'git Stage buffer' })
- map('n', '<leader>hu', gs.undo_stage_hunk, { desc = 'undo stage hunk' })
- map('n', '<leader>hR', gs.reset_buffer, { desc = 'git Reset buffer' })
- map('n', '<leader>hp', gs.preview_hunk, { desc = 'preview git hunk' })
- map('n', '<leader>hb', function()
- gs.blame_line { full = false }
- end, { desc = 'git blame line' })
- map('n', '<leader>hd', gs.diffthis, { desc = 'git diff against index' })
- map('n', '<leader>hD', function()
- gs.diffthis '~'
- end, { desc = 'git diff against last commit' })
-
- -- Toggles
- map('n', '<leader>tb', gs.toggle_current_line_blame, { desc = 'toggle git blame line' })
- map('n', '<leader>td', gs.toggle_deleted, { desc = 'toggle git show deleted' })
-
- -- Text object
- map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>', { desc = 'select git hunk' })
- end,
- },
- },
-
- {
- -- Theme inspired by Atom
- 'navarasu/onedark.nvim',
- priority = 1000,
- lazy = false,
- config = function()
- require('onedark').setup {
- -- Set a style preset. 'dark' is default.
- style = 'dark', -- dark, darker, cool, deep, warm, warmer, light
- }
- require('onedark').load()
- end,
- },
-
- {
- -- Set lualine as statusline
- 'nvim-lualine/lualine.nvim',
- -- See `:help lualine.txt`
- opts = {
- options = {
- icons_enabled = false,
- theme = 'auto',
- 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 = {},
- },
+
+ -- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link).
+ 'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically
+
+ -- NOTE: Plugins can also be added by using a table,
+ -- with the first argument being the link and the following
+ -- keys can be used to configure plugin behavior/loading/etc.
+ --
+ -- Use `opts = {}` to force a plugin to be loaded.
+ --
+ -- This is equivalent to:
+ -- require('Comment').setup({})
-- "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',
+ -- modular approach: using `require 'path/name'` will
+ -- include a plugin definition from file lua/path/name.lua
+
+ require 'kickstart/plugins/gitsigns',
+
+ require 'kickstart/plugins/which-key',
+
+ require 'kickstart/plugins/telescope',
+
+ require 'kickstart/plugins/lspconfig',
+
+ require 'kickstart/plugins/conform',
+
+ require 'kickstart/plugins/cmp',
+
+ require 'kickstart/plugins/tokyonight',
+
+ require 'kickstart/plugins/todo-comments',
+
+ require 'kickstart/plugins/mini',
+
+ require 'kickstart/plugins/treesitter',
+
+ -- The following two comments only work if you have downloaded the kickstart repo, not just copy pasted the
+ -- init.lua. If you want these files, they are in the repository, so you can just download them and
+ -- put them in the right spots if you want.
+
+ -- NOTE: Next step on your Neovim journey: Add/Configure additional plugins for kickstart
+ --
+ -- Here are some example plugins that I've included in the kickstart repository.
+ -- Uncomment any of the lines below to enable them (you will need to restart nvim).
+ --
-- require 'kickstart.plugins.debug',
+ -- require 'kickstart.plugins.indent_line',
-- 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.
+ -- This is the easiest way to modularize your config.
--
- -- For additional information see: https://github.com/folke/lazy.nvim#-structuring-your-plugins
+ -- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
+ -- For additional information see: :help lazy.nvim-lazy.nvim-structuring-your-plugins
-- { import = 'custom.plugins' },
}, {})