[[ch-plugins]]
== Plugins

The following are the neovim plugins used within neovim-flake. Some plugins are explicitly enabled by the user, while others are enabled implicitly.

[[sec-plugins-autopairs]]
=== Autopairs

* https://github.com/windwp/nvim-autopairs[nvim-autopairs] an autopair plugin for neovim


[[sec-plugins-assistant]]
=== Coding Assistants

* https://github.com/zbirenbaum/copilot.lua[copilot.lua] a lua replacement for github.vim, the license nightmare AI assistant
* https://github.com/codota/tabnine-nvim[tabnine-nvim] neovim plugin for the more ethically acceptable AI assistant TabNine

[[sec-plugins-buffer]]
=== Buffers

* https://github.com/akinsho/bufferline.nvim[nvim-bufferline-lua] a buffer line with tab integration
* https://github.com/famiu/bufdelete.nvim[bufdelete-nvim] delete buffers without losing window layout

[[sec-plugins-commenting]]
=== Commenting

* https://github.com/b3nj5m1n/kommentary[kommentary] neovim plugin to comment text in and out, written in lua. Supports commenting out the current line, a visual selection and a motion
* https://github.com/folke/todo-comments.nvim[todo-comments.nvim] plugin to highlight and search for todo comments like TODO, HACK, BUG in your codebase

[[sec-plugins-completions]]
=== Completions

* https://github.com/hrsh7th/nvim-cmp[nvim-cmp] a completion engine that utilizes sources
** https://github.com/hrsh7th/cmp-buffer[cmp-buffer] a source for buffer words
** https://github.com/hrsh7th/cmp-nvim-lsp[cmp-nvim-lsp] a source for builtin LSP client
** https://github.com/hrsh7th/cmp-vsnip[cmp-vsnip] a source for vim-vsnip autocomplete
** https://github.com/hrsh7th/cmp-path[cmp-path] a source for path autocomplete
** https://github.com/ray-x/cmp-treesitter[cmp-treesitter] treesitter nodes autcomplete

[[sec-plugins-dashboard]]
=== Dashboard

* https://github.com/glepnir/dashboard-nvim[dashboard.nvim] fancy and blazing fast start screen plugin for Neovim
* https://github.com/goolord/alpha-nvim[alpha.nvim] a fast and fully programmable greeter for neovim
* https://github.com/mhinz/vim-startify[vim-startify] a fancy start screen for {neo,}vim

[[sec-plugins-server]]
=== Language Server

* https://github.com/neovim/nvim-lspconfig[nvim-lspconfig] common configurations for built-in language server
* https://github.com/jose-elias-alvarez/null-ls.nvim[null-ls.nvim] neovim as a language server to inject LSP diagnostics, code actions, etc.
* https://github.com/glepnir/lspsaga.nvim[lspsaga.nvim] useful UI and tools for lsp
* https://github.com/folke/trouble.nvim[trouble.nvim] pretty list of lsp data
* https://github.com/weilbith/nvim-code-action-menu[nvim-code-action-menu] a better code action menu with diff support
* https://github.com/ray-x/lsp_signature.nvim[lsp-signature] show function signatures as you type
* https://github.com/onsails/lspkind-nvim[lspkind-nvim] for pictograms in lsp (with support for nvim-cmp)


[[sec-plugins-statuslines]]
=== Statuslines

* https://github.com/hoob3rt/lualine.nvim[lualine.nvim] statusline written in lua.

[[sec-plugins-filetrees]]
=== Filetrees

* https://github.com/kyazdani42/nvim-tree.lua[nvim-tree-lua] a file explorer tree written in lua. Using

[[sec-plugins-git]]
=== Git

* https://github.com/lewis6991/gitsigns.nvim[gitsigns.nvim] a variety of git decorations

[[sec-plugins-treesitter]]
=== Treesitter

* https://github.com/romgrk/nvim-treesitter-context[nvim-treesitter-context] a context bar using tree-sitter

[[sec-plugins-visuals]]
=== Visuals

* https://github.com/lukas-reineke/indent-blankline.nvim[indent-blankline] for indentation guides
* https://github.com/kyazdani42/nvim-web-devicons[nvim-web-devicons] plugins and colors for icons. Requires patched font
* https://github.com/declancm/cinnamon.nvim[cinnamon.nvim] smooth scrolling for ANY movement command
* https://github.com/nvim-cursorline[nvim-cursorline] a plugin for neovim that highlights cursor words and lines 
* https://github.com/petertriho/nvim-scrollbar[nvim-scrollbar] a scrollbar plugin for neovim
* https://github.com/Eandrju/cellular-automaton.nvim[cellular-automaton] a vanity to plugin to help you procrastinate more efficiently

[[sec-plugins-minimap]]
=== Minimap

* https://github.com/wfxr/minimap.vim[minimap.vim] a blazing fast minimap plugin for neovim. Depends on code-minimap
* https://github.com/gorbit99/codewindow.nvim[codewindow.nvim] a simple, configurable minimap plugin for neovim with no external dependencies

[[sec-plugins-notifications]]
=== Notifications

* https://github.com/rcarriga/nvim-notify[nvim-notify] simple notification plugin that also integrates with noice.nvim

[[sec-plugins-notes]]
=== Note-taking

* https://github.com/obsidian.nvim[obsidian.nvim] a neovim plugin that deeply integrates with the obsidian markdown editor. Also works standalone
* https://github.com/nvim-orgmode/orgmode[orgmode] a neovim replacement for emac orgmode

[[sec-plugins-session-management]]
=== Session Management

* https://github.com/Shatur/neovim-session-manager[neovim-session-manager] a simple wrapper around :mksession

[[sec-plugins-snippets]]
=== Snippets

* https://github.com/hrsh7th/vim-vsnip[vim-vsnip] a snippet plugin that supports LSP/VSCode's snippet format


[[sec-plugins-terminal]]
=== Terminal

* https://github.com/akinsho/toggleterm.nvim[toggleterm.nvim] a simple terminal plugin that opens a terminal buffer on demand

[[sec-plugins-themes]]
=== Themes

* https://github.com/navarasu/onedark.nvim[onedark] a dark colorscheme with multiple options
* https://github.com/folke/tokyonight.nvim[tokyonight-nvim] a neovim theme with multiple color options
* https://github.com/catppuccin/nvim[catppuccin] a pastel theme with 4 color options


[[sec-plugins-utilities]]
=== Utilities

* https://github.com/nvim-telescope/telescope.nvim[telescope] an extendable fuzzy finder of lists. Working ripgrep and fd
* https://github.com/folke/which-key.nvim[which-key] a popup that displays possible keybindings of command being typed
* https://github.com/sudormrfbin/cheatsheet.nvim[cheatsheet.nvim] a searchable cheatsheet for neovim from within the editor using Telescope
* https://github.com/ga-rosa/ccc.nvim[ccc.nvim] super powerful color picker and colorizer plugin. 
* https://github.com/ziontee113/icon-picker.nvim[icon-picker.nvim] an icon picker plugin that provides access to thousands of icons
* https://github.com/jbyuki/venn.nvim[venn.nvim] draw venn diagrams inside neovim

[[sec-plugins-ui]]
=== UI Elements

* https://github.com/folke/noice.nvim[noice.nvim] an experimental neovim plugin that replaces some UI components of neovim


[[sec-plugins-presence]]
=== Rich Presence

* https://github.com/andweeb/presence.nvim[presence.nvim] light and powerful discord rich presence plugin

[[sec-plugins-markdown]]
=== Markdown

* https://github.com/ellisonleao/glow.nvim[glow.nvim] a markdown preview directly in neovim using glow

[[sec-plugins-rust]]
=== Rust

* https://github.com/simrat39/rust-tools.nvim[rust-tools] provides tools for rust
* https://github.com/Saecki/crates.nvim[crates.nvim] provides tools for working with `cargo.toml`

[[sec-plugins-tidalcycles]]
=== Tidal Cycles

* https://github.com/tidalcycles/vim-tidal[vim-tidal] for tidal cycles integration into vim

[[sec-plugins-sql]]
=== SQL

* https://github.com/nanotee/sqls.nvim[sqls.nvim] for useful actions that leverage `sqls` LSP

[[sec-plugins-html]]
=== HTML

* https://github.com/windwp/nvim-ts-autotag[nvim-ts-autotag] uses treesitter to autoclose/rename html tags

[[sec-plugins-dependencies]]
=== Dependencies

* https://github.com/nvim-lua/plenary.nvim[plenary] which is a dependency of some plugins, installed automatically if needed
* https://github.comstevearc/dressing.nvim[dressing.nvim] which is a dependency for icon-picker.nvim
* https://github.com/preservim/vim-markdown[vim-markdown] which is a dependency for obsidian.nvim
* https://github.comgodlygeek/tabular[tabular] which is a dependency for vim-markdown
* https://github.com/MunifTanjim/nui.nvim[nui.nvim] which is a dependency for nui-nvim