From 4b8100b0a9690b050723ef34654fcaaff96b90f9 Mon Sep 17 00:00:00 2001 From: Micah Halter Date: Fri, 10 Nov 2023 16:07:15 -0500 Subject: [PATCH] feat: add default plugin list --- src/content/docs/acknowledgements.md | 56 -- .../docs/configuration/core_plugins.md | 12 +- .../docs/configuration/plugin_defaults.md | 692 ------------------ src/content/docs/recipes/colorscheme.md | 2 +- src/content/docs/reference/alt_install.md | 2 +- src/content/docs/reference/default_plugins.md | 61 ++ 6 files changed, 71 insertions(+), 754 deletions(-) delete mode 100644 src/content/docs/configuration/plugin_defaults.md create mode 100644 src/content/docs/reference/default_plugins.md diff --git a/src/content/docs/acknowledgements.md b/src/content/docs/acknowledgements.md index d914ec0c4..7c5f1d04e 100644 --- a/src/content/docs/acknowledgements.md +++ b/src/content/docs/acknowledgements.md @@ -3,12 +3,6 @@ id: acknowledgements title: Acknowledgements --- -::::danger - -UNVALIDATED: NEED UPDATING FOR V4 - -:::: - ## ⭐ Credits Sincere appreciation to the following repositories, plugin authors and the entire neovim community out there that made the development of AstroNvim possible. @@ -16,53 +10,3 @@ Sincere appreciation to the following repositories, plugin authors and the entir - [NvChad](https://github.com/NvChad/NvChad) - [LunarVim](https://github.com/LunarVim) - [CosmicVim](https://github.com/CosmicNvim/CosmicNvim) - -## 🔌 Plugins used in AstroNvim - -| Plugin | Git Repository | -| --------------------------- | -------------------------------------------------------------- | -| Plugin Manager | https://github.com/folke/lazy.nvim | -| Package Manager | https://github.com/williamboman/mason.nvim | -| Session Manager | https://github.com/Shatur/neovim-session-manager | -| Lua Functions | https://github.com/nvim-lua/plenary.nvim | -| Notifications | https://github.com/rcarriga/nvim-notify | -| Neovim UI Enhancer | https://github.com/MunifTanjim/nui.nvim | -| Automatic Indent Detection | https://github.com/NMAC427/guess-indent.nvim | -| Smarter Splits | https://github.com/mrjones2014/smart-splits.nvim | -| Icons | https://github.com/nvim-tree/nvim-web-devicons | -| Buffer Closing | https://github.com/echasnovski/mini.bufremove | -| File Explorer | https://github.com/nvim-neo-tree/neo-tree.nvim | -| Statusline | https://github.com/rebelot/heirline.nvim | -| Syntax Highlighting | https://github.com/nvim-treesitter/nvim-treesitter | -| Better Text Objects | https://github.com/echasnovski/mini.ai | -| Syntax Text Objects | https://github.com/nvim-treesitter/nvim-treesitter-textobjects | -| Autoclose tags | https://github.com/windwp/nvim-ts-autotag | -| Context Commenting | https://github.com/JoosepAlviste/nvim-ts-context-commentstring | -| Snippet Engine | https://github.com/L3MON4D3/LuaSnip | -| Snippet Collections | https://github.com/rafamadriz/friendly-snippets | -| Completion Engine | https://github.com/hrsh7th/nvim-cmp | -| Snippet Completion | https://github.com/saadparwaiz1/cmp_luasnip | -| Buffer Completion | https://github.com/hrsh7th/cmp-buffer | -| DAP Completion | https://github.com/rcarriga/cmp-dap | -| Path Completion | https://github.com/hrsh7th/cmp-path | -| LSP Completion | https://github.com/hrsh7th/nvim-cmp | -| Built-in LSP | https://github.com/neovim/nvim-lspconfig | -| Mason LSP Configuration | https://github.com/williamboman/mason-lspconfig.nvim | -| LSP Symbols | https://github.com/stevearc/aerial.nvim | -| LSP Local Configuration | https://github.com/folke/neoconf.nvim | -| Formatting & Linting | https://github.com/nvimtools/none-ls.nvim | -| Mason Null-ls Configuration | https://github.com/jay-babu/mason-null-ls.nvim | -| Debugger | https://github.com/mfussenegger/nvim-dap | -| Mason DAP Configuration | https://github.com/jay-babu/mason-nvim-dap.nvim | -| Debugger UI | https://github.com/rcarriga/nvim-dap-ui | -| Fuzzy Finder | https://github.com/nvim-telescope/telescope.nvim | -| Fuzzy Finder Syntax | https://github.com/nvim-telescope/telescope-fzf-native.nvim | -| Git Integration | https://github.com/lewis6991/gitsigns.nvim | -| Start Screen | https://github.com/goolord/alpha-nvim | -| Color Highlighting | https://github.com/NvChad/nvim-colorizer.lua | -| Autopairs | https://github.com/windwp/nvim-autopairs | -| Terminal | https://github.com/akinsho/toggleterm.nvim | -| Commenting | https://github.com/numToStr/Comment.nvim | -| Indentation | https://github.com/lukas-reineke/indent-blankline.nvim | -| Keymaps Popup | https://github.com/folke/which-key.nvim | -| Smooth Escaping | https://github.com/max397574/better-escape.nvim | diff --git a/src/content/docs/configuration/core_plugins.md b/src/content/docs/configuration/core_plugins.md index 6834c3695..057ae33a5 100644 --- a/src/content/docs/configuration/core_plugins.md +++ b/src/content/docs/configuration/core_plugins.md @@ -3,7 +3,7 @@ id: core_plugins title: Core Plugins --- -AstroNvim comes with a few core plugins that drive the main configuration of the editor. These are split up between [AstroCore](https://github.com/AstroNvim/astrocore), [AstroUI](https://github.com/AstroNvim/astroui), and [AstroLSP](https://github.com/AstroNvim/astrolsp). Each of these plugins have full documentation on their repositories as well as built into the Neovim help pages with `:h astrocore`, `:h astroui`, and `:h astrolsp`. Here we will go over the goals of each plugin, links to pages for more detailed configuration explanations of different functionalities, and links to their configuration documentation. +AstroNvim comes with a few core plugins that drive the main configuration of the editor. These are split up between [AstroCore](https://github.com/AstroNvim/astrocore), [AstroUI](https://github.com/AstroNvim/astroui), [AstroLSP](https://github.com/AstroNvim/astrolsp), and [AstroTheme](https://github.com/AstroNvim/astrotheme). Each of these plugins have full documentation on their repositories as well as built into the Neovim help pages with `:h astrocore`, `:h astroui`, `:h astrolsp`, and `:h astrotheme`. Here we will go over the goals of each plugin, links to pages for more detailed configuration explanations of different functionalities, and links to their configuration documentation. :::tip @@ -13,12 +13,16 @@ These plugins provide integration with the Lua Language Server to be able to pro ## AstroCore -AstroCore provides the main configuration of core functionality such as user commands, auto commands, global mappings. This also includes AstroNvim specific features such as git worktrees integration and session management. This configuration happens fully through the `opts` table in your plugins specifications. The full table of configuration options can be found in the [AstroCore Documentation](https://github.com/AstroNvim/astrocore#%EF%B8%8F-configuration). +[AstroCore](https://github.com/AstroNvim/astrocore) provides the main configuration of core functionality such as user commands, auto commands, global mappings. This also includes AstroNvim specific features such as git worktrees integration and session management. This configuration happens fully through the `opts` table in your plugins specifications. The full table of configuration options can be found in the [AstroCore Documentation](https://github.com/AstroNvim/astrocore#%EF%B8%8F-configuration). ## AstroUI -AstroUI provides the API and configuration level which helps AstroNvim have a cohesive user interface. This includes defining icons to be used throughout the interface, configuration of highlight groups, and also configuration of the extensive status API for building our custom statusline, winbar, and tabline. For more detailed information on some of these options, be sure to check out the pages in the relevant Recipes section: [Customizing Statusline](/recipes/status), [Customize Icons](/recipes/icons), and [Custom Colorscheme](/recipes/colorscheme). The full table of configuration options can be found in the [AstroUI Documentation](https://github.com/AstroNvim/astroui#%EF%B8%8F-configuration). +[AstroUI](https://github.com/AstroNvim/astroui) provides the API and configuration level which helps AstroNvim have a cohesive user interface. This includes defining icons to be used throughout the interface, configuration of highlight groups, and also configuration of the extensive status API for building our custom statusline, winbar, and tabline. For more detailed information on some of these options, be sure to check out the pages in the relevant Recipes section: [Customizing Statusline](/recipes/status), [Customize Icons](/recipes/icons), and [Custom Colorscheme](/recipes/colorscheme). The full table of configuration options can be found in the [AstroUI Documentation](https://github.com/AstroNvim/astroui#%EF%B8%8F-configuration). ## AstroLSP -AstroLSP is the main engine for our LSP configuration and setup. This provides integration with many core plugins such as `nvim-lspconfig`, `none-ls`, and mason utilities. For more detailed explanations on configuring the LSP inside of AstroNvim, be sure to check out the [Advanced LSP Setup page](/recipes/advanced_lsp). The full table of configuration options can be found in the [AstroLSP Documentation](https://github.com/AstroNvim/astrolsp#%EF%B8%8F-configuration). +[AstroLSP](https://github.com/AstroNvim/astrolsp) is the main engine for our LSP configuration and setup. This provides integration with many core plugins such as `nvim-lspconfig`, `none-ls`, and mason utilities. For more detailed explanations on configuring the LSP inside of AstroNvim, be sure to check out the [Advanced LSP Setup page](/recipes/advanced_lsp). The full table of configuration options can be found in the [AstroLSP Documentation](https://github.com/AstroNvim/astrolsp#%EF%B8%8F-configuration). + +## AstroTheme + +[AstroTheme](https://github.com/AstroNvim/astrotheme) is the default colorscheme that has been built for AstroNvim. It has been optimized for accessibility and contrast, while maintaining a clean and modern aesthetic. It also has first class support for all of the plugins built into AstroNvim as well as support for many common plugins that our users use. diff --git a/src/content/docs/configuration/plugin_defaults.md b/src/content/docs/configuration/plugin_defaults.md deleted file mode 100644 index d171e421a..000000000 --- a/src/content/docs/configuration/plugin_defaults.md +++ /dev/null @@ -1,692 +0,0 @@ ---- -id: plugin_defaults -title: Default Plugin Configurations ---- - -::::danger - -UNVALIDATED: NEED UPDATING FOR V4 - -:::: - -This page documents the default options that are set by AstroNvim for each individual plugin. All of these options can be changed in the `plugins` table in the `user/init.lua` configuration file as described in the [Custom Plugins Documentation](../custom_plugins). - -## [aerial.nvim](https://github.com/stevearc/aerial.nvim) - -```lua -opts = { - buftype_exclude = { - "nofile", - "terminal", - }, - filetype_exclude = { - "help", - "startify", - "aerial", - "alpha", - "dashboard", - "lazy", - "neogitstatus", - "NvimTree", - "neo-tree", - "Trouble", - }, - context_patterns = { - "class", - "return", - "function", - "method", - "^if", - "^while", - "jsx_element", - "^for", - "^object", - "^table", - "block", - "arguments", - "if_statement", - "else_clause", - "jsx_element", - "jsx_self_closing_element", - "try_statement", - "catch_clause", - "import_statement", - "operation_type", - }, - show_trailing_blankline_indent = false, - use_treesitter = true, - char = "▏", - context_char = "▏", - show_current_context = true, -} -``` - -## [alpha-nvim](https://github.com/goolord/alpha-nvim) - -```lua -opts = function() - local dashboard = require "alpha.themes.dashboard" - dashboard.section.header.val = { - " █████ ███████ ████████ ██████ ██████", - "██ ██ ██ ██ ██ ██ ██ ██", - "███████ ███████ ██ ██████ ██ ██", - "██ ██ ██ ██ ██ ██ ██ ██", - "██ ██ ███████ ██ ██ ██ ██████", - " ", - " ███ ██ ██ ██ ██ ███ ███", - " ████ ██ ██ ██ ██ ████ ████", - " ██ ██ ██ ██ ██ ██ ██ ████ ██", - " ██ ██ ██ ██ ██ ██ ██ ██ ██", - " ██ ████ ████ ██ ██ ██", - } - dashboard.section.header.opts.hl = "DashboardHeader" - - local button = require("astronvim.utils").alpha_button - dashboard.section.buttons.val = { - button("LDR n", " New File "), - button("LDR f f", " Find File "), - button("LDR f o", "󰈙 Recents "), - button("LDR f w", "󰈭 Find Word "), - button("LDR f '", " Bookmarks "), - button("LDR S l", " Last Session "), - } - - dashboard.config.layout[1].val = vim.fn.max { 2, vim.fn.floor(vim.fn.winheight(0) * 0.2) } - dashboard.config.layout[3].val = 5 - dashboard.config.opts.noautocmd = true - return dashboard -end -``` - -## [astrotheme](https://github.com/AstroNvim/astrotheme) - -```lua -opts = { plugins = { ["dashboard-nvim"] = true } } -``` - -## [better-escape.nvim](https://github.com/max397574/better-escape.nvim) - -```lua -opts = { timeout = 300 } -``` - -## [Comment.nvim](https://github.com/numToStr/Comment.nvim) - -```lua -opts = function() - return { pre_hook = require("ts_context_commentstring.integrations.comment_nvim").create_pre_hook() } -end -``` - -## [dressing.nvim](https://github.com/stevearc/dressing.nvim) - -```lua -opts = { - input = { - default_prompt = "➤ ", - win_options = { winhighlight = "Normal:Normal,NormalNC:Normal" }, - }, - select = { - backend = { "telescope", "builtin" }, - builtin = { win_options = { winhighlight = "Normal:Normal,NormalNC:Normal" } }, - }, -} -``` - -## [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) - -```lua -opts = { - signs = { - add = { text = "▎" }, - change = { text = "▎" }, - delete = { text = "▎" }, - topdelete = { text = "契" }, - changedelete = { text = "▎" }, - untracked = { text = "▎" }, - }, -} -``` - -## [heirline.nvim](https://github.com/rebelot/heirline.nvim) - -See [Customizing Statusline](../../recipes/status) - -## [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) - -```lua -opts = { - indent = { char = "▏" }, - scope = { show_start = false, show_end = false }, - exclude = { - buftypes = { - "nofile", - "terminal", - }, - filetypes = { - "help", - "startify", - "aerial", - "alpha", - "dashboard", - "lazy", - "neogitstatus", - "NvimTree", - "neo-tree", - "Trouble", - }, - }, -} -``` - -## [lspkind.nvim](https://github.com/onsails/lspkind.nvim) - -```lua -opts = { - mode = "symbol", - symbol_map = { - NONE = "", - Array = "", - Boolean = "⊨", - Class = "", - Constructor = "", - Key = "", - Namespace = "", - Null = "NULL", - Number = "#", - Object = "⦿", - Package = "", - Property = "", - Reference = "", - Snippet = "", - String = "𝓐", - TypeParameter = "", - Unit = "", - }, -} -``` - -## [LuaSnip](https://github.com/L3MON4D3/LuaSnip) - -```lua -opts = { - store_selection_keys = "", -} -``` - -## [mason-null-ls.nvim](https://github.com/jay-babu/mason-null-ls.nvim) - -```lua -opts = { automatic_setup = true } -``` - -## [mason-nvim-dap](https://github.com/jay-babu/mason-nvim-dap.nvim) - -```lua -opts = { automatic_setup = true } -``` - -## [mason.nvim](https://github.com/williamboman/mason.nvim) - -```lua -opts = { - ui = { - icons = { - package_installed = "✓", - package_uninstalled = "✗", - package_pending = "⟳", - }, - }, -} -``` - -## [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim) - -```lua -local get_icon = require("astronvim.utils").get_icon -opts = { - auto_clean_after_session_restore = true, - close_if_last_window = true, - source_selector = { - winbar = true, - content_layout = "center", - sources = { - { source = "filesystem", display_name = get_icon "FolderClosed" .. " File" }, - { source = "buffers", display_name = get_icon "DefaultFile" .. " Bufs" }, - { source = "git_status", display_name = get_icon "Git" .. " Git" }, - { source = "diagnostics", display_name = get_icon "Diagnostic" .. " Diagnostic" }, - }, - }, - default_component_configs = { - indent = { padding = 0, indent_size = 1 }, - icon = { - folder_closed = get_icon "FolderClosed", - folder_open = get_icon "FolderOpen", - folder_empty = get_icon "FolderEmpty", - default = get_icon "DefaultFile", - }, - modified = { symbol = get_icon "FileModified" }, - git_status = { - symbols = { - added = get_icon "GitAdd", - deleted = get_icon "GitDelete", - modified = get_icon "GitChange", - renamed = get_icon "GitRenamed", - untracked = get_icon "GitUntracked", - ignored = get_icon "GitIgnored", - unstaged = get_icon "GitUnstaged", - staged = get_icon "GitStaged", - conflict = get_icon "GitConflict", - }, - }, - }, - commands = { - system_open = function(state) require("astronvim.utils").system_open(state.tree:get_node():get_id()) end, - parent_or_close = function(state) - local node = state.tree:get_node() - if (node.type == "directory" or node:has_children()) and node:is_expanded() then - state.commands.toggle_node(state) - else - require("neo-tree.ui.renderer").focus_node(state, node:get_parent_id()) - end - end, - child_or_open = function(state) - local node = state.tree:get_node() - if node.type == "directory" or node:has_children() then - if not node:is_expanded() then -- if unexpanded, expand - state.commands.toggle_node(state) - else -- if expanded and has children, seleect the next child - require("neo-tree.ui.renderer").focus_node(state, node:get_child_ids()[1]) - end - else -- if not a directory just open it - state.commands.open(state) - end - end, - copy_selector = function(state) - local node = state.tree:get_node() - local filepath = node:get_id() - local filename = node.name - local modify = vim.fn.fnamemodify - - local results = { - e = { val = modify(filename, ":e"), msg = "Extension only" }, - f = { val = filename, msg = "Filename" }, - F = { val = modify(filename, ":r"), msg = "Filename w/o extension" }, - h = { val = modify(filepath, ":~"), msg = "Path relative to Home" }, - p = { val = modify(filepath, ":."), msg = "Path relative to CWD" }, - P = { val = filepath, msg = "Absolute path" }, - } - - local messages = { - { "\nChoose to copy to clipboard:\n", "Normal" }, - } - for i, result in pairs(results) do - if result.val and result.val ~= "" then - vim.list_extend(messages, { - { ("%s."):format(i), "Identifier" }, - { (" %s: "):format(result.msg) }, - { result.val, "String" }, - { "\n" }, - }) - end - end - vim.api.nvim_echo(messages, false, {}) - local result = results[vim.fn.getcharstr()] - if result and result.val and result.val ~= "" then - vim.notify("Copied: " .. result.val) - vim.fn.setreg("+", result.val) - end - end, - }, - window = { - width = 30, - mappings = { - [""] = false, -- disable space until we figure out which-key disabling - ["[b"] = "prev_source", - ["]b"] = "next_source", - o = "open", - O = "system_open", - h = "parent_or_close", - l = "child_or_open", - Y = "copy_selector", - }, - }, - filesystem = { - follow_current_file = { enabled = true }, - hijack_netrw_behavior = "open_current", - use_libuv_file_watcher = true, - }, - event_handlers = { - { - event = "neo_tree_buffer_enter", - handler = function(_) vim.opt_local.signcolumn = "auto" end, - }, - }, -} -``` - -## [neodev.nvim](https://github.com/folke/neodev.nvim) - -```lua -opts = { - override = function(root_dir, library) - if root_dir:match(astronvim.install.config) then library.plugins = true end - vim.b.neodev_enabled = library.enabled - end, -} -``` - -## [none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) - -```lua -opts = function() return { on_attach = require("astronvim.utils.lsp").on_attach } end -``` - -## [nvim-autopairs](https://github.com/windwp/nvim-autopairs) - -```lua -opts = { - check_ts = true, - ts_config = { java = false }, - fast_wrap = { - map = "", - chars = { "{", "[", "(", '"', "'" }, - pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""), - offset = 0, - end_key = "$", - keys = "qwertyuiopzxcvbnmasdfghjkl", - check_comma = true, - highlight = "PmenuSel", - highlight_grey = "LineNr", - }, -} -``` - -## [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - -```lua -opts = function() - local cmp = require "cmp" - local snip_status_ok, luasnip = pcall(require, "luasnip") - local lspkind_status_ok, lspkind = pcall(require, "lspkind") - if not snip_status_ok then return end - local border_opts = - { border = "single", winhighlight = "Normal:Normal,FloatBorder:FloatBorder,CursorLine:Visual,Search:None" } - - local function has_words_before() - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match "%s" == nil - end - - return { - enabled = function() - if vim.api.nvim_get_option_value("buftype", { buf = 0 }) == "prompt" then return false end - return vim.g.cmp_enabled - end, - preselect = cmp.PreselectMode.None, - formatting = { - fields = { "kind", "abbr", "menu" }, - format = lspkind_status_ok and lspkind.cmp_format(astronvim.lspkind) or nil, - }, - snippet = { - expand = function(args) luasnip.lsp_expand(args.body) end, - }, - duplicates = { - nvim_lsp = 1, - luasnip = 1, - cmp_tabnine = 1, - buffer = 1, - path = 1, - }, - confirm_opts = { - behavior = cmp.ConfirmBehavior.Replace, - select = false, - }, - window = { - completion = cmp.config.window.bordered(border_opts), - documentation = cmp.config.window.bordered(border_opts), - }, - mapping = { - [""] = cmp.mapping.select_prev_item { behavior = cmp.SelectBehavior.Select }, - [""] = cmp.mapping.select_next_item { behavior = cmp.SelectBehavior.Select }, - [""] = cmp.mapping.select_prev_item { behavior = cmp.SelectBehavior.Insert }, - [""] = cmp.mapping.select_next_item { behavior = cmp.SelectBehavior.Insert }, - [""] = cmp.mapping.select_prev_item { behavior = cmp.SelectBehavior.Insert }, - [""] = cmp.mapping.select_next_item { behavior = cmp.SelectBehavior.Insert }, - [""] = cmp.mapping(cmp.mapping.scroll_docs(-4), { "i", "c" }), - [""] = cmp.mapping(cmp.mapping.scroll_docs(4), { "i", "c" }), - [""] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }), - [""] = cmp.config.disable, - [""] = cmp.mapping { i = cmp.mapping.abort(), c = cmp.mapping.close() }, - [""] = cmp.mapping.confirm { select = false }, - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end, { "i", "s" }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end, { "i", "s" }), - }, - sources = cmp.config.sources { - { name = "nvim_lsp", priority = 1000 }, - { name = "luasnip", priority = 750 }, - { name = "buffer", priority = 500 }, - { name = "path", priority = 250 }, - }, - } -end -``` - -## [nvim-colorizer.lua](https://github.com/NvChad/nvim-colorizer.lua) - -```lua -opts = { user_default_options = { names = false } } -``` - -## [nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui) - -```lua -opts = { floating = { border = "rounded" } } -``` - -## [nvim-notify](https://github.com/rcarriga/nvim-notify) - -```lua -opts = { stages = "fade" } -``` - -## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - -```lua -opts = { - autotag = { enable = true }, - context_commentstring = { enable = true, enable_autocmd = false }, - highlight = { - enable = true, - disable = function(_, bufnr) return vim.api.nvim_buf_line_count(bufnr) > 10000 end, - }, - incremental_selection = { enable = true }, - indent = { enable = true }, - textobjects = { - select = { - enable = true, - lookahead = true, - keymaps = { - ["ak"] = { query = "@block.outer", desc = "around block" }, - ["ik"] = { query = "@block.inner", desc = "inside block" }, - ["ac"] = { query = "@class.outer", desc = "around class" }, - ["ic"] = { query = "@class.inner", desc = "inside class" }, - ["a?"] = { query = "@conditional.outer", desc = "around conditional" }, - ["i?"] = { query = "@conditional.inner", desc = "inside conditional" }, - ["af"] = { query = "@function.outer", desc = "around function " }, - ["if"] = { query = "@function.inner", desc = "inside function " }, - ["al"] = { query = "@loop.outer", desc = "around loop" }, - ["il"] = { query = "@loop.inner", desc = "inside loop" }, - ["aa"] = { query = "@parameter.outer", desc = "around argument" }, - ["ia"] = { query = "@parameter.inner", desc = "inside argument" }, - }, - }, - move = { - enable = true, - set_jumps = true, - goto_next_start = { - ["]k"] = { query = "@block.outer", desc = "Next block start" }, - ["]f"] = { query = "@function.outer", desc = "Next function start" }, - ["]a"] = { query = "@parameter.inner", desc = "Next argument start" }, - }, - goto_next_end = { - ["]K"] = { query = "@block.outer", desc = "Next block end" }, - ["]F"] = { query = "@function.outer", desc = "Next function end" }, - ["]A"] = { query = "@parameter.inner", desc = "Next argument end" }, - }, - goto_previous_start = { - ["[k"] = { query = "@block.outer", desc = "Previous block start" }, - ["[f"] = { query = "@function.outer", desc = "Previous function start" }, - ["[a"] = { query = "@parameter.inner", desc = "Previous argument start" }, - }, - goto_previous_end = { - ["[K"] = { query = "@block.outer", desc = "Previous block end" }, - ["[F"] = { query = "@function.outer", desc = "Previous function end" }, - ["[A"] = { query = "@parameter.inner", desc = "Previous argument end" }, - }, - }, - swap = { - enable = true, - swap_next = { - [">K"] = { query = "@block.outer", desc = "Swap next block" }, - [">F"] = { query = "@function.outer", desc = "Swap next function" }, - [">A"] = { query = "@parameter.inner", desc = "Swap next argument" }, - }, - swap_previous = { - [""] = actions.cycle_history_next, - [""] = actions.cycle_history_prev, - [""] = actions.move_selection_next, - [""] = actions.move_selection_previous, - }, - n = { ["q"] = actions.close }, - }, - }, - } -end -``` - -## [toggleterm.nvim](https://github.com/akinsho/toggleterm.nvim) - -```lua -opts = { - size = 10, - open_mapping = [[]], - shading_factor = 2, - direction = "float", - float_opts = { - border = "curved", - highlights = { border = "Normal", background = "Normal" }, - }, -} -``` diff --git a/src/content/docs/recipes/colorscheme.md b/src/content/docs/recipes/colorscheme.md index 91941a3ed..c0a29a007 100644 --- a/src/content/docs/recipes/colorscheme.md +++ b/src/content/docs/recipes/colorscheme.md @@ -3,7 +3,7 @@ id: colorscheme title: Custom Colorscheme/Theme --- -This page goes over how to install and configure a custom color scheme or theme in your AstroNvim configuration. By default AstroNvim ships with it's own custom color scheme, [AstroTheme](https://github.com/AstroNvim/astrotheme), but there are many others to choose from to fit your needs. When choosing a colorscheme/theme, make sure to check what plugins they support and compare that with the list of [Plugins used in AstroNvim](https://docs.astronvim.com/acknowledgements/#-plugins-used-in-astronvim). Not every plugin requires custom highlights, but having good support for common plugins helps unify the user interface and keep things looking nice. +This page goes over how to install and configure a custom color scheme or theme in your AstroNvim configuration. By default AstroNvim ships with it's own custom color scheme, [AstroTheme](https://github.com/AstroNvim/astrotheme), but there are many others to choose from to fit your needs. When choosing a colorscheme/theme, make sure to check what plugins they support and compare that with the list of [Plugins used in AstroNvim](/reference/default_plugins). Not every plugin requires custom highlights, but having good support for common plugins helps unify the user interface and keep things looking nice. ## Using a Custom Colorscheme diff --git a/src/content/docs/reference/alt_install.md b/src/content/docs/reference/alt_install.md index 03889909e..59a4ae7c8 100644 --- a/src/content/docs/reference/alt_install.md +++ b/src/content/docs/reference/alt_install.md @@ -28,7 +28,7 @@ nvim --headless +q ## Isolated Installation -Neovim v0.9 introduced a great new environment variable called `NVIM_APPNAME` which allows the user to easily use configuration directories separate from the standard location. This is very useful if you want to install or try out AstroNvim without overwriting an existing Neovim configuration. The full details on the environmnet variable usage can be found in the Neovim documentation [`:h NVIM_APPNAME`](https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME). Here is an example where we set it up using `NVIM_APPNAME=astronvim`: +Neovim v0.9 introduced a great new environment variable called `NVIM_APPNAME` which allows the user to easily use configuration directories separate from the standard location. This is very useful if you want to install or try out AstroNvim without overwriting an existing Neovim configuration. The full details on the environment variable usage can be found in the Neovim documentation [`:h NVIM_APPNAME`](https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME). Here is an example where we set it up using `NVIM_APPNAME=astronvim`: 1. Clone your configuration to `~/.config/astronvim`, example using the AstroNvim template: diff --git a/src/content/docs/reference/default_plugins.md b/src/content/docs/reference/default_plugins.md new file mode 100644 index 000000000..0ed62f2c4 --- /dev/null +++ b/src/content/docs/reference/default_plugins.md @@ -0,0 +1,61 @@ +--- +id: default_plugins +title: Default Plugins +--- + +| Plugin | Purpose | +| ------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | +| [AstroNvim/astrocore](https://github.com/AstroNvim/astrocore) | Core Functionality | +| [AstroNvim/astrolsp](https://github.com/AstroNvim/astrolsp) | LSP Integration | +| [AstroNvim/astrotheme](https://github.com/AstroNvim/astrotheme) | Default Colorscheme/Theme | +| [AstroNvim/astroui](https://github.com/AstroNvim/astroui) | UI Configuration | +| [JoosepAlviste/nvim-ts-context-commentstring](https://github.com/JoosepAlviste/nvim-ts-context-commentstring) | Contextual commenting | +| [L3MON4D3/LuaSnip](https://github.com/L3MON4D3/LuaSnip) | Snippet Engine | +| [MunifTanjim/nui.nvim](https://github.com/MunifTanjim/nui.nvim) | UI Component Library (for Neo-Tree) | +| [NMAC427/guess-indent.nvim](https://github.com/NMAC427/guess-indent.nvim) | Automatic Indentation Detection | +| [NvChad/nvim-colorizer.lua](https://github.com/NvChad/nvim-colorizer.lua) | Highlight Color Strings | +| [akinsho/toggleterm.nvim](https://github.com/akinsho/toggleterm.nvim) | Terminal Management | +| [echasnovski/mini.bufremove](https://github.com/echasnovski/mini.bufremove) | Buffer Removal | +| [folke/lazy.nvim](https://github.com/folke/lazy.nvim) | Plugin Management | +| [folke/neoconf.nvim](https://github.com/folke/neoconf.nvim) | Global and Project-local settings | +| [folke/neodev.nvim](https://github.com/folke/neodev.nvim) | Neovim Lua LSP Integration | +| [folke/which-key.nvim](https://github.com/folke/which-key.nvim) | Keymap Popup/Help Window | +| [goolord/alpha-nvim](https://github.com/goolord/alpha-nvim) | Dashboard/Homescreen | +| [hrsh7th/cmp-buffer](https://github.com/hrsh7th/cmp-buffer) | Completion of Buffer Words | +| [hrsh7th/cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp) | Completion of LSP | +| [hrsh7th/cmp-path](https://github.com/hrsh7th/cmp-path) | Completion of Paths | +| [hrsh7th/nvim-cmp](https://github.com/hrsh7th/nvim-cmp) | Completion Engine | +| [jay-babu/mason-null-ls.nvim](https://github.com/jay-babu/mason-null-ls.nvim) | Mason Null-LS (None-LS) Integtration | +| [jay-babu/mason-nvim-dap.nvim](https://github.com/jay-babu/mason-nvim-dap.nvim) | Mason Nvim-DAP Integration | +| [kevinhwang91/nvim-ufo](https://github.com/kevinhwang91/nvim-ufo) | Fold detection | +| [kevinhwang91/promise-async](https://github.com/kevinhwang91/promise-async) | Asynchronous Library (helper) | +| [lewis6991/gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) | Buffer Git Integration | +| [lukas-reineke/indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) | Indent-level Indicators | +| [max397574/better-escape.nvim](https://github.com/max397574/better-escape.nvim) | Easy Escape (`jj`, `jk`) | +| [mfussenegger/nvim-dap](https://github.com/mfussenegger/nvim-dap) | Debugger Adapter Protocol | +| [mrjones2014/smart-splits.nvim](https://github.com/mrjones2014/smart-splits.nvim) | Split Navigation and Multiplexer Integration | +| [neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) | Language Server Configurations | +| [numToStr/Comment.nvim](https://github.com/numToStr/Comment.nvim) | Comment Vim Operators | +| [nvim-lua/plenary.nvim](https://github.com/nvim-lua/plenary.nvim) | Lua Helper Functions (helper) | +| [nvim-neo-tree/neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim) | File Explorer | +| [nvim-telescope/telescope-fzf-native.nvim](https://github.com/nvim-telescope/telescope-fzf-native.nvim) | Fast Telescope Sorter | +| [nvim-telescope/telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) | General Finder/Picker | +| [nvim-tree/nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons) | Filetype Icons | +| [nvim-treesitter/nvim-treesitter-textobjects](https://github.com/nvim-treesitter/nvim-treesitter-textobjects) | Treesitter Vim Text Objects | +| [nvim-treesitter/nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) | Syntax Tree Based Highlighting | +| [nvimtools/none-ls.nvim](https://github.com/nvimtools/none-ls.nvim) | Formatter and Linter LSP Integration | +| [onsails/lspkind.nvim](https://github.com/onsails/lspkind.nvim) | LSP Symbol Icons | +| [rafamadriz/friendly-snippets](https://github.com/rafamadriz/friendly-snippets) | General Purpose Snippet Collection | +| [rcarriga/cmp-dap](https://github.com/rcarriga/cmp-dap) | Completion in DAP REPL | +| [rcarriga/nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui) | DAP User Interface | +| [rcarriga/nvim-notify](https://github.com/rcarriga/nvim-notify) | UI Notification Pop-ups | +| [rebelot/heirline.nvim](https://github.com/rebelot/heirline.nvim) | Custom Statusline/Tabline/Winbar | +| [s1n7ax/nvim-window-picker](https://github.com/s1n7ax/nvim-window-picker) | Window Picker (for Neo-tree) | +| [saadparwaiz1/cmp_luasnip](https://github.com/saadparwaiz1/cmp_luasnip) | Completion of Snippets | +| [stevearc/aerial.nvim](https://github.com/stevearc/aerial.nvim) | Symbol Overview/Code Outline | +| [stevearc/dressing.nvim](https://github.com/stevearc/dressing.nvim) | General `vim.ui` Improvements | +| [stevearc/resession.nvim](https://github.com/stevearc/resession.nvim) | Session Management | +| [williamboman/mason-lspconfig.nvim](https://github.com/williamboman/mason-lspconfig.nvim) | Mason LSP Integration | +| [williamboman/mason.nvim](https://github.com/williamboman/mason.nvim) | External Package Manager | +| [windwp/nvim-autopairs](https://github.com/windwp/nvim-autopairs) | Automatically Close Pairs | +| [windwp/nvim-ts-autotag](https://github.com/windwp/nvim-ts-autotag) | Autoomatically Close/Rename Tags |