-
Notifications
You must be signed in to change notification settings - Fork 462
Plugins
Tunghohin edited this page Sep 9, 2023
·
44 revisions
The plugins' dependency tree is as follows (click to enlarge):
- Legend:
┌─┐ ┌─┐
│A│ ──────────► │B│ Arrow indicates "B is loaded after A"
└─┘ └─┘
┌─┐ ┌─┐
│A│ ─ ─ ─ ─► │B│ Dashed line indicates "B depends on A, or A must be loaded before B"
└─┘ └─┘
* Neovim starts loading from `init`
* Light blue circles are events
* Dark blue circles are plugin names, where:
* Octagons are optional plugins
* Green circle is the language server's core plugin
* Self-contained plugins will load themselves when needed
Source code in graphviz format
digraph plugins_load_seq {
ratio = fill;
node [style=filled];
init -> opt [color="0.649 0.701 0.701"];
init -> start [color="0.649 0.701 0.701"];
init -> "self-contained" [color="0.649 0.701 0.701"];
start -> "catppuccin" [color="0.649 0.701 0.701"];
start -> "bigfile.nvim" [color="0.649 0.701 0.701"];
opt -> VeryLazy [color="0.619 0.714 0.714"];
opt -> BufNewFile [color="0.619 0.714 0.714"];
opt -> CursorHold [color="0.619 0.714 0.714"];
CursorHoldI -> CursorHold [color="0.619 0.714 0.714" style="dashed"];
VeryLazy -> BufWinEnter [color="0.619 0.714 0.714"];
BufWinEnter -> BufAdd [color="0.619 0.714 0.714"];
BufAdd -> BufReadPre [color="0.619 0.714 0.714"];
BufReadPre -> BufReadPost [color="0.619 0.714 0.714"];
BufReadPost -> LspAttach [color="0.619 0.714 0.714"];
LspAttach -> InsertEnter [color="0.619 0.714 0.714"];
VeryLazy -> "accelerated-jk.nvim" [color="0.649 0.701 0.701"];
VeryLazy -> "nvim-notify" [color="0.649 0.701 0.701"];
BufWinEnter -> "alpha-nvim" [color="0.649 0.701 0.701"];
BufNewFile -> "bufferline.nvim" [color="0.649 0.701 0.701"];
BufNewFile -> "nvim-scrollview" [color="0.649 0.701 0.701"];
BufNewFile -> "lualine.nvim" [color="0.649 0.701 0.701"];
BufAdd -> "bufferline.nvim" [color="0.649 0.701 0.701"];
BufAdd -> "nvim-scrollview" [color="0.649 0.701 0.701"];
BufAdd -> "lualine.nvim" [color="0.649 0.701 0.701"];
BufReadPost -> "hop.nvim" [color="0.649 0.701 0.701"];
BufReadPost -> "smartyank.nvim" [color="0.649 0.701 0.701"];
BufReadPost -> "fcitx5.nvim (opt)" [color="0.649 0.701 0.701"];
BufReadPost -> "indent-blankline.nvim" [color="0.649 0.701 0.701"];
BufReadPost -> "bufferline.nvim" [color="0.649 0.701 0.701"];
BufReadPost -> "nvim-scrollview" [color="0.649 0.701 0.701"];
BufReadPost -> "fidget.nvim" [color="0.649 0.701 0.701"];
BufReadPost -> "nvim-treesitter" [color="0.649 0.701 0.701"];
"nvim-treesitter" -> "nvim-treesitter-context" [color="0.649 0.701 0.701"];
"nvim-treesitter-context" -> "nvim-treesitter-textobjects" [color="0.649 0.701 0.701"];
"nvim-treesitter-textobjects" -> "nvim-ts-rainbow" [color="0.649 0.701 0.701"];
"nvim-ts-rainbow" -> "nvim-ts-context-commentstring" [color="0.649 0.701 0.701"];
"nvim-ts-context-commentstring" -> "nvim-ts-hint-textobject" [color="0.649 0.701 0.701"];
"nvim-ts-hint-textobject" -> "nvim-ts-autotag" [color="0.649 0.701 0.701"];
"nvim-ts-autotag" -> "vim-matchup" [color="0.649 0.701 0.701"];
"vim-matchup" -> "nvim-colorizer.lua" [color="0.649 0.701 0.701"];
"vim-matchup" -> "nvim-treehopper" [color="0.649 0.701 0.701"];
"nvim-treehopper" -> "nvim-colorizer.lua" [color="0.649 0.701 0.701"];
"nvim-colorizer.lua" -> "tabout.nvim" [color="0.649 0.701 0.701"];
InsertEnter -> "nvim-cmp" [color="0.649 0.701 0.701"];
InsertEnter -> "vim-cool" [color="0.649 0.701 0.701"];
InsertEnter -> "copilot.lua" [color="0.649 0.701 0.701"];
InsertEnter -> "autoclose.nvim" [color="0.649 0.701 0.701"];
"copilot.lua" -> "copilot-cmp" [color="0.649 0.701 0.701"];
"LuaSnip" -> "cmp_luasnip" [color="0.649 0.701 0.701" style="dashed"];
"cmp-under-comparator" -> "nvim-cmp" [color="0.649 0.701 0.701" style="dashed"];
"cmp_luasnip" -> "cmp-nvim-lsp" [color="0.649 0.701 0.701" style="dashed"];
"cmp-nvim-lsp" -> "cmp-nvim-lua" [color="0.649 0.701 0.701" style="dashed"];
"cmp-nvim-lua" -> "cmp-tmux" [color="0.649 0.701 0.701" style="dashed"];
"cmp-tmux" -> "cmp-path" [color="0.649 0.701 0.701" style="dashed"];
"cmp-path" -> "cmp-spell" [color="0.649 0.701 0.701" style="dashed"];
"cmp-spell" -> "cmp-treesitter" [color="0.649 0.701 0.701" style="dashed"];
"cmp-treesitter" -> "cmp-buffer" [color="0.649 0.701 0.701" style="dashed"];
"cmp-buffer" -> "cmp-latex-symbols" [color="0.649 0.701 0.701" style="dashed"];
"cmp-latex-symbols" -> "cmp-tabnine (opt)" [color="0.649 0.701 0.701" style="dashed"];
"cmp-tabnine (opt)" -> "codeium.nvim (opt)" [color="0.649 0.701 0.701" style="dashed"];
"codeium.nvim (opt)" -> "nvim-cmp" [color="0.649 0.701 0.701" style="dashed"];
"friendly-snippets" -> "LuaSnip" [color="0.649 0.701 0.701" style="dashed"];
CursorHold -> "Comment.nvim" [color="0.649 0.701 0.701"];
CursorHold -> "clever-f.vim" [color="0.649 0.701 0.701"];
CursorHold -> "better-escape.nvim" [color="0.649 0.701 0.701"];
CursorHold -> "vim-illuminate" [color="0.649 0.701 0.701"];
CursorHold -> "gitsigns.nvim" [color="0.649 0.701 0.701"];
CursorHold -> "project.nvim" [color="0.649 0.701 0.701"];
CursorHold -> "neoscroll.nvim" [color="0.649 0.701 0.701"];
CursorHold -> "which-key.nvim" [color="0.649 0.701 0.701"];
CursorHold -> "paint.nvim" [color="0.649 0.701 0.701"];
"mason-null-ls.nvim" -> "null-ls.nvim" [color="0.649 0.701 0.701" style="dashed"];
# "plenary.nvim" -> "null-ls.nvim" [color="0.649 0.701 0.701" style="dashed"];
CursorHold -> "null-ls.nvim" [color="0.649 0.701 0.701"];
"mason-lspconfig.nvim" -> "mason.nvim" [color="0.649 0.701 0.701" style="dashed"];
"mason.nvim" -> "nvim-lspconfig" [color="0.649 0.701 0.701" style="dashed"];
CursorHold -> "nvim-lspconfig" [color="0.649 0.701 0.701"];
"nvim-lspconfig" -> "lspsaga.nvim" [color="0.649 0.701 0.701"];
"nvim-lspconfig" -> "lsp_signature.nvim" [color="0.649 0.701 0.701"];
"nvim-lspconfig" -> "lualine.nvim" [color="0.649 0.701 0.701"];
"nvim-lspconfig" -> "mason.nvim" [color="0.649 0.701 0.701"];
"lspsaga.nvim" -> "lualine.nvim" [color="0.649 0.701 0.701"];
LspAttach -> "neodim" [color="0.649 0.701 0.701"];
"nvim-treesitter" -> "neodim" [color="0.649 0.701 0.701" style="dashed"];
"self-contained" -> "vim-easy-align" [color="0.649 0.701 0.701"];
"self-contained" -> "persisted.nvim" [color="0.649 0.701 0.701"];
"self-contained" -> "toggleterm.nvim" [color="0.649 0.701 0.701"];
"self-contained" -> "nvim-bufdel" [color="0.649 0.701 0.701"];
"self-contained" -> "nvim-dap" [color="0.649 0.701 0.701"];
"self-contained" -> "nord.nvim" [color="0.649 0.701 0.701"];
"self-contained" -> "edge" [color="0.649 0.701 0.701"];
"nvim-dap" -> "nvim-dap-ui" [color="0.649 0.701 0.701"];
"self-contained" -> "vim-fugitive" [color="0.649 0.701 0.701"];
"self-contained" -> "specs.nvim" [color="0.649 0.701 0.701"];
"self-contained" -> "diffview.nvim" [color="0.649 0.701 0.701"];
"self-contained" -> "vim-go" [color="0.649 0.701 0.701"];
"plenary.nvim" -> "rust-tools.nvim" [color="0.649 0.701 0.701" style="dashed"];
"self-contained" -> "rust-tools.nvim" [color="0.649 0.701 0.701"];
"self-contained" -> "suda.vim" [color="0.649 0.701 0.701"];
"self-contained" -> "crates.nvim" [color="0.649 0.701 0.701"];
"self-contained" -> "markdown-preview.nvim" [color="0.649 0.701 0.701"];
"self-contained" -> "csv.vim" [color="0.649 0.701 0.701"];
"self-contained" -> "plenary.nvim" [color="0.649 0.701 0.701"];
"plenary.nvim" -> "popup.nvim" [color="0.649 0.701 0.701"];
"nvim-web-devicons" -> "popup.nvim" [color="0.649 0.701 0.701"];
"popup.nvim" -> "telescope-undo.nvim" [color="0.649 0.701 0.701" style="dashed"];
"telescope-undo.nvim" -> "telescope.nvim" [color="0.649 0.701 0.701" style="dashed"];
"plenary.nvim" -> "telescope.nvim" [color="0.649 0.701 0.701" style="dashed"];
"telescope.nvim" -> "telescope-fzf-native.nvim" [color="0.649 0.701 0.701"];
"telescope-fzf-native.nvim" -> "telescope-frecency.nvim" [color="0.649 0.701 0.701"];
"sqlite.lua" -> "telescope-frecency.nvim" [color="0.649 0.701 0.701" style="dashed"];
"telescope-frecency.nvim" -> "telescope-zoxide" [color="0.649 0.701 0.701"];
"telescope-zoxide" -> "telescope-live-grep-args.nvim" [color="0.649 0.701 0.701"];
"self-contained" -> "sniprun" [color="0.649 0.701 0.701"];
"self-contained" -> "vim-startuptime" [color="0.649 0.701 0.701"];
"fzy-lua-native" -> "wilder.nvim" [color="0.649 0.701 0.701" style="dashed"];
"self-contained" -> "wilder.nvim" [color="0.649 0.701 0.701"];
"self-contained" -> "nvim-tree.lua" [color="0.649 0.701 0.701"];
"self-contained" -> "trouble.nvim" [color="0.649 0.701 0.701"];
opt [color="0.650 0.200 1.000"];
start [color="0.650 0.200 1.000"];
"self-contained" [color="0.650 0.200 1.000"];
"nvim-lspconfig" [color="0.408 0.498 1.000"];
"mason-lspconfig.nvim" [color="0.650 0.200 1.000"];
"mason.nvim" [color="0.650 0.200 1.000"];
"Comment.nvim" [color="0.650 0.200 1.000"];
"which-key.nvim" [color="0.650 0.200 1.000"];
"nvim-web-devicons" [color="0.650 0.200 1.000"];
"nord.nvim" [color="0.650 0.200 1.000"];
"edge" [color="0.650 0.200 1.000"];
"catppuccin" [color="0.650 0.200 1.000"];
"bigfile.nvim" [color="0.650 0.200 1.000"];
"nvim-notify" [color="0.650 0.200 1.000"];
"lspsaga.nvim" [color="0.650 0.200 1.000"];
"lsp_signature.nvim" [color="0.650 0.200 1.000"];
"nvim-cmp" [color="0.650 0.200 1.000"];
"cmp-under-comparator" [color="0.650 0.200 1.000"];
"LuaSnip" [color="0.650 0.200 1.000"];
"cmp_luasnip" [color="0.650 0.200 1.000"];
"cmp-nvim-lsp" [color="0.650 0.200 1.000"];
"cmp-nvim-lua" [color="0.650 0.200 1.000"];
"cmp-tmux" [color="0.650 0.200 1.000"];
"cmp-path" [color="0.650 0.200 1.000"];
"cmp-spell" [color="0.650 0.200 1.000"];
"cmp-buffer" [color="0.650 0.200 1.000"];
"cmp-treesitter" [color="0.650 0.200 1.000"];
"cmp-tabnine (opt)" [color="0.650 0.200 1.000" shape=doubleoctagon];
"codeium.nvim (opt)" [color="0.650 0.200 1.000" shape=doubleoctagon];
"cmp-latex-symbols" [color="0.650 0.200 1.000"];
"friendly-snippets" [color="0.650 0.200 1.000"];
"autoclose.nvim" [color="0.650 0.200 1.000"];
"copilot.lua" [color="0.650 0.200 1.000"];
"copilot-cmp" [color="0.650 0.200 1.000"];
"vim-easy-align" [color="0.650 0.200 1.000"];
"vim-illuminate" [color="0.650 0.200 1.000"];
"nvim-treesitter" [color="0.650 0.200 1.000"];
"nvim-treesitter-context" [color="0.650 0.200 1.000"];
"nvim-treesitter-textobjects" [color="0.650 0.200 1.000"];
"nvim-ts-rainbow" [color="0.650 0.200 1.000"];
"nvim-ts-context-commentstring" [color="0.650 0.200 1.000"];
"nvim-ts-hint-textobject" [color="0.650 0.200 1.000"];
"nvim-ts-autotag" [color="0.650 0.200 1.000"];
"vim-matchup" [color="0.650 0.200 1.000"];
"accelerated-jk.nvim" [color="0.650 0.200 1.000"];
"clever-f.vim" [color="0.650 0.200 1.000"];
"vim-cool" [color="0.650 0.200 1.000"];
"hop.nvim" [color="0.650 0.200 1.000"];
"neoscroll.nvim" [color="0.650 0.200 1.000"];
"toggleterm.nvim" [color="0.650 0.200 1.000"];
"nvim-treehopper" [color="0.650 0.200 1.000"];
"nvim-colorizer.lua" [color="0.650 0.200 1.000"];
"persisted.nvim" [color="0.650 0.200 1.000"];
"better-escape.nvim" [color="0.650 0.200 1.000"];
"nvim-dap" [color="0.650 0.200 1.000"];
"nvim-dap-ui" [color="0.650 0.200 1.000"];
"vim-fugitive" [color="0.650 0.200 1.000"];
"nvim-bufdel" [color="0.650 0.200 1.000"];
"specs.nvim" [color="0.650 0.200 1.000"];
"tabout.nvim" [color="0.650 0.200 1.000"];
"diffview.nvim" [color="0.650 0.200 1.000"];
"smartyank.nvim" [color="0.650 0.200 1.000"];
"fcitx5.nvim (opt)" [color="0.650 0.200 1.000" shape=doubleoctagon];
"vim-go" [color="0.650 0.200 1.000"];
"rust-tools.nvim" [color="0.650 0.200 1.000"];
"crates.nvim" [color="0.650 0.200 1.000"];
"markdown-preview.nvim" [color="0.650 0.200 1.000"];
"csv.vim" [color="0.650 0.200 1.000"];
"plenary.nvim" [color="0.650 0.200 1.000"];
"telescope.nvim" [color="0.650 0.200 1.000"];
"popup.nvim" [color="0.650 0.200 1.000"];
"telescope-undo.nvim" [color="0.650 0.200 1.000"];
"project.nvim" [color="0.650 0.200 1.000"];
"suda.vim" [color="0.650 0.200 1.000"];
"telescope-fzf-native.nvim" [color="0.650 0.200 1.000"];
"telescope-frecency.nvim" [color="0.650 0.200 1.000"];
"sqlite.lua" [color="0.650 0.200 1.000"];
"telescope-zoxide" [color="0.650 0.200 1.000"];
"telescope-live-grep-args.nvim" [color="0.650 0.200 1.000"];
"sniprun" [color="0.650 0.200 1.000"];
"trouble.nvim" [color="0.650 0.200 1.000"];
"vim-startuptime" [color="0.650 0.200 1.000"];
"wilder.nvim" [color="0.650 0.200 1.000"];
"neodim" [color="0.650 0.200 1.000"];
"lualine.nvim" [color="0.650 0.200 1.000"];
"alpha-nvim" [color="0.650 0.200 1.000"];
"nvim-tree.lua" [color="0.650 0.200 1.000"];
"gitsigns.nvim" [color="0.650 0.200 1.000"];
"paint.nvim" [color="0.650 0.200 1.000"];
"null-ls.nvim" [color="0.650 0.200 1.000"];
"mason-null-ls.nvim" [color="0.650 0.200 1.000"];
"indent-blankline.nvim" [color="0.650 0.200 1.000"];
"bufferline.nvim" [color="0.650 0.200 1.000"];
"nvim-scrollview" [color="0.650 0.200 1.000"];
"fidget.nvim" [color="0.650 0.200 1.000"];
"fzy-lua-native" [color="0.650 0.200 1.000"];
BufReadPre [color="0.590 0.273 1.000"];
BufWinEnter [color="0.590 0.273 1.000"];
BufReadPost [color="0.590 0.273 1.000"];
BufAdd [color="0.590 0.273 1.000"];
InsertEnter [color="0.590 0.273 1.000"];
VeryLazy [color="0.590 0.273 1.000"];
BufNewFile [color="0.590 0.273 1.000"];
LspAttach [color="0.590 0.273 1.000"];
CursorHold [color="0.590 0.273 1.000"];
CursorHoldI [color="0.590 0.273 1.000"];
}
-
neovim/nvim-lspconfig: Neovim's native LSP configuration
- williamboman/mason.nvim: package manager for LSP, DAP servers, linters and formatters
-
williamboman/mason-lspconfig.nvim: using
nvim-lspconfig
withmason.nvim
- glepnir/lspsaga.nvim: better LSP functions
- ray-x/lsp_signature.nvim: show signature when completing function parameters
-
hrsh7th/nvim-cmp: auto completion plugin for Neovim
-
L3MON4D3/LuaSnip: snippets completion engine for
nvim-cmp
-
rafamadriz/friendly-snippets: snippets source for
LusSnip
-
rafamadriz/friendly-snippets: snippets source for
-
lukas-reineke/cmp-under-comparator: better completion sorting for underline items in
nvim-cmp
-
saadparwaiz1/cmp_luasnip: luasnip source for
nvim-cmp
-
hrsh7th/cmp-nvim-lsp: lsp source for
nvim-cmp
-
hrsh7th/cmp-nvim-lua: lua source for
nvim-cmp
-
andersevenrud/cmp-tmux: tmux source for
nvim-cmp
-
hrsh7th/cmp-path: path source for
nvim-cmp
-
f3fora/cmp-spell: spell source for
nvim-cmp
-
ray-x/cmp-treesitter: treesitter source for
nvim-cmp
-
hrsh7th/cmp-buffer: buffer source for
nvim-cmp
-
kdheepak/cmp-latex-symbols: latex symbols source for
nvim-cmp
-
L3MON4D3/LuaSnip: snippets completion engine for
-
jose-elias-alvarez/null-ls.nvim: use Neovim as a language server via Lua
-
jay-babu/mason-null-ls.nvim: using
null-ls
withmason.nvim
-
jay-babu/mason-null-ls.nvim: using
-
zbirenbaum/copilot.lua: lua port of
copilot.vim
-
zbirenbaum/copilot-cmp: copilot source for
nvim-cmp
-
zbirenbaum/copilot-cmp: copilot source for
-
rainbowhxch/accelerated-jk.nvim: accelerated
j
/k
- m4xshen/autoclose.nvim: auto pairs & closes brackets
- olimorris/persisted.nvim: session management
-
max397574/better-escape.nvim: replace
esc
withjk
- LunarVim/bigfile.nvim: provide support for editing large files
-
ojroques/nvim-bufdel: close buffer gently with
bufferline.nvim
-
rhysd/clever-f.vim: extended
f
,F
,t
andT
key mappings for Neovim - numToStr/Comment.nvim: better comment
- sindrets/diffview.nvim: git diff view
- junegunn/vim-easy-align: easy alignment
- phaazon/hop.nvim: better motion jumping
- RRethy/vim-illuminate: highlight current cursor word
- romainl/vim-cool: auto-clear highlight after search
- lambdalisue/suda.vim: allows one to edit a file with prevledges from an unprivledged session
-
nvim-treesitter/nvim-treesitter: super powerful code highlighter
- nvim-treesitter-context: shows the context of the currently visible buffer contents
- nvim-treesitter/nvim-treesitter-textobjects: move between textobjects
- p00f/nvim-ts-rainbow: rainbow brackets
- JoosepAlviste/nvim-ts-context-commentstring: context-based comment
-
mfussenegger/nvim-ts-hint-textobject: select textobject like
hop.nvim
-
andymass/vim-matchup: better matchup for
%
-
windwp/nvim-ts-autotag: faster
vim-closetag
- NvChad/nvim-colorizer.lua: display detected color
- abecodes/tabout.nvim: tabout between bracket
- github.com/mfussenegger/nvim-treehopper: tabout between bracket
- fatih/vim-go: plugin for golang
- simrat39/rust-tools.nvim: plugin for rust
-
Saecki/crates.nvim: manage
crates.io
dependencies - iamcco/markdown-preview.nvim: render markdown preview
- chrisbra/csv.vim: plugin for csv
- tpope/vim-fugitive: git operations inside Neovim, by legendary tpope
- folke/which-key.nvim: keymap hints
-
nvim-tree/nvim-tree.lua: better
netrw
- ibhagwan/smartyank.nvim: provide tmux/OSC52 clipboard support
- michaelb/sniprun: run code snippet quickly
- akinsho/toggleterm.nvim: better terminal
- folke/trouble.nvim: show code errors
-
gelguy/wilder.nvim: command mode completions
-
romgrk/fzy-lua-native:
fzy
support forwilder.nvim
-
romgrk/fzy-lua-native:
-
nvim-telescope/telescope.nvim: general fuzzy filder
- nvim-tree/nvim-web-devicons: nerd font icons
-
nvim-lua/plenary.nvim: required by
telescope.nvim
-
nvim-lua/popup.nvim: required by
telescope.nvim
- debugloop/telescope-undo.nvim: fuzzy find undo history
- ahmedkhalf/project.nvim: manage projects
-
nvim-telescope/telescope-fzf-native.nvim:
fzf
search -
nvim-telescope/telescope-frecency.nvim: frequent and recent file jump
-
kkharji/sqlite.lua:
SQLite
wrapper for Neovim
-
kkharji/sqlite.lua:
-
jvgrootveld/telescope-zoxide: jump to directory recorded by
zoxide
-
nvim-telescope/telescope-live-grep-args.nvim: supprt args when using
live_grep
-
mfussenegger/nvim-dap: Debug Adapter Protocol client implementation for Neovim
- rcarriga/nvim-dap-ui: UI for DAP
- goolord/alpha-nvim: better startup page
- akinsho/bufferline.nvim: tab and buffer management
- catppuccin/nvim: catppuccin theme
- sainnhe/edge: edge theme
- j-hui/fidget.nvim: show lsp real-time status
-
lewis6991/gitsigns.nvim: show git status in
statuscolum
- lukas-reineke/indent-blankline.nvim: show indent with different level
-
nvim-lualine/lualine.nvim: minimal, fast but customizable
statusline
- zbirenbaum/neodim: dimming the unused symbols
- karb94/neoscroll.nvim: smooth scroll
- shaunsingh/nord.nvim: nord theme
- rcarriga/nvim-notify: animated notify
- dstein64/nvim-scrollview: scroll-able scrollbar
- folke/paint.nvim: easily add additional highlights to buffers
- edluffy/specs.nvim: hint cursor place when jump multiple lines