Skip to content
冷酔閑吟 edited this page May 7, 2023 · 44 revisions

Internal relationship

The plugin dependency diagram is as follows (click to enlarge):

dep-diag

  • 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"];
	"nvim-treesitter" -> "bigfile.nvim" [color="0.649 0.701 0.701" style="dashed"];
	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"];

	"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"];
	BufNewFile -> "nvim-lspconfig" [color="0.649 0.701 0.701"];
	BufNewFile -> "bufferline.nvim" [color="0.649 0.701 0.701"];
	BufNewFile -> "lualine.nvim" [color="0.649 0.701 0.701"];
	BufNewFile -> "clever-f.vim" [color="0.649 0.701 0.701"];

	BufAdd -> "nvim-lspconfig" [color="0.649 0.701 0.701"];
	BufAdd -> "bufferline.nvim" [color="0.649 0.701 0.701"];
	BufAdd -> "lualine.nvim" [color="0.649 0.701 0.701"];
	BufAdd -> "clever-f.vim" [color="0.649 0.701 0.701"];

	BufReadPre -> "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"];

	BufReadPost -> "clever-f.vim" [color="0.649 0.701 0.701"];
	BufReadPost -> "hop.nvim" [color="0.649 0.701 0.701"];
	BufReadPost -> "neoscroll.nvim" [color="0.649 0.701 0.701"];
	BufReadPost -> "nvim-bufdel" [color="0.649 0.701 0.701"];
	BufReadPost -> "stabilize.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 -> "project.nvim" [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"];
	"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"];
	"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"];
	"lspkind.nvim" -> "nvim-cmp" [color="0.649 0.701 0.701" style="dashed"];
	"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 -> "better-escape.nvim" [color="0.649 0.701 0.701"];
	CursorHold -> "vim-illuminate" [color="0.649 0.701 0.701"];
	CursorHold -> "nvim-treesitter" [color="0.649 0.701 0.701"];
	CursorHold -> "gitsigns.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"];

	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" -> "auto-session" [color="0.649 0.701 0.701"];
	"self-contained" -> "toggleterm.nvim" [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"];
"lspkind.nvim" [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-colorizer.lua" [color="0.650 0.200 1.000"];
"auto-session" [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"];
"stabilize.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"];
}

Scopes

Completion

Editor

Lang

Tool

UI

Clone this wiki locally