--[[ 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 -- -- To update plugins you can run -- :Lazy update -- -- NOTE: Here is where you install your plugins. require('lazy').setup({ -- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link). -- Plugins with default values 'NMAC427/guess-indent.nvim', -- Detect tabstop and shiftwidth automatically 'numToStr/Comment.nvim', -- "gc" to comment visual regions/lines 'github/copilot.vim', -- Copilot -- keeping comments for annotation -- 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 automatically pass options to a plugin's `setup()` function, forcing the plugin to be loaded. -- Alternatively, use `config = function() ... end` for full control over the configuration. -- If you prefer to call `setup` explicitly, use: -- { -- 'lewis6991/gitsigns.nvim', -- config = function() -- require('gitsigns').setup({ -- -- Your gitsigns configuration here -- }) -- end, -- NOTE: Plugins can also be configured to run Lua code when they are loaded. -- -- This is often very useful to both group configuration, as well as handle -- lazy loading plugins that don't need to be loaded immediately at startup. -- -- For example, in the following configuration, we use: -- event = 'VimEnter' -- -- which loads which-key before all the UI elements are loaded. Events can be -- normal autocommands events (`:help autocmd-events`). -- -- Then, because we use the `opts` key (recommended), the configuration runs -- after the plugin has been loaded as `require(MODULE).setup(opts)`. -- NOTE: Plugins can specify dependencies. -- -- The dependencies are proper plugin specifications as well - anything -- you do for a plugin at the top level, you can do for a dependency. -- -- Use the `dependencies` key to specify the dependencies of a particular plugin -- 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 -- place them in the correct locations. -- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua` -- This is the easiest way to modularize your config. -- -- 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' }, -- } -- One liners -- Highlight todo, notes, etc in comments { 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } }, -- Plugins with custom values require 'plugins_config/which-key', -- Show created key bindings require 'plugins_config/gitsigns', -- Manage git signs, blame require 'plugins_config/vim-fugitive', -- Manage git in nvim require 'plugins_config/telescope', -- Manage searches nicely require 'plugins_config/worktree', -- Manage worktrees from nvim require 'plugins_config/lsp', -- Multilanguage lsp config require 'plugins_config/conform', -- Autoformat files using lsp on save require 'plugins_config/autocomplete', -- Autocompletion require 'plugins_config/colortheme', -- Color theme for the editor require 'plugins_config/mini', -- Collections of useful mini plugins, like around/surround require 'plugins_config/tree-sitter', -- manage lint, indentation and some othe language related tasks require 'plugins_config/harpoon', -- Improve workflow for multiple files require 'plugins_config/code_runner', -- Code runner require 'plugins_config/indent_line', -- Indentation visualizer require 'plugins_config/lint', -- Linter config -- Broken configs/Testing config -- 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 = {} }, -- optional notation -- Here is a more advanced example where we pass configuration -- options to `gitsigns.nvim`. This is equivalent to the following Lua: -- require('gitsigns').setup({ ... }) -- -- See `:help gitsigns` to understand what the configuration keys do }, { ui = { -- If you are using a Nerd Font: set icons to an empty table which will use the -- default lazy.nvim defined Nerd Font icons, otherwise define a unicode icons table icons = vim.g.have_nerd_font and {} or { cmd = '⌘', config = '🛠', event = '📅', ft = '📂', init = '⚙', keys = '🗝', plugin = '🔌', runtime = '💻', require = '🌙', source = '📄', start = '🚀', task = '📌', lazy = '💤 ', }, }, }) -- The line beneath this is called `modeline`. See `:help modeline` -- vim: ts=2 sts=2 sw=2 et