Outline
info
You can enable the extra with the :LazyExtras command.
Plugins marked as optional will only be configured if they are installed.
Below you can find a list of included plugins and their default settings.
caution
You don't need to copy the default settings to your config. They are only shown here for reference.
outline.nvim
- Options
- Full Spec
opts = function()
  local defaults = require("outline.config").defaults
  local opts = {
    symbols = {
      icons = {},
      filter = vim.deepcopy(LazyVim.config.kind_filter),
    },
    keymaps = {
      up_and_jump = "<up>",
      down_and_jump = "<down>",
    },
  }
  for kind, symbol in pairs(defaults.symbols.icons) do
    opts.symbols.icons[kind] = {
      icon = LazyVim.config.icons.kinds[kind] or symbol.icon,
      hl = symbol.hl,
    }
  end
  return opts
end
{
  "hedyhli/outline.nvim",
  keys = { { "<leader>cs", "<cmd>Outline<cr>", desc = "Toggle Outline" } },
  cmd = "Outline",
  opts = function()
    local defaults = require("outline.config").defaults
    local opts = {
      symbols = {
        icons = {},
        filter = vim.deepcopy(LazyVim.config.kind_filter),
      },
      keymaps = {
        up_and_jump = "<up>",
        down_and_jump = "<down>",
      },
    }
    for kind, symbol in pairs(defaults.symbols.icons) do
      opts.symbols.icons[kind] = {
        icon = LazyVim.config.icons.kinds[kind] or symbol.icon,
        hl = symbol.hl,
      }
    end
    return opts
  end,
}
trouble.nvim (optional)
 Disable <leader>cs keymap so it doesn't conflict with outline.nvim
- Options
- Full Spec
opts = nil
{
  "folke/trouble.nvim",
  optional = true,
  keys = {
    { "<leader>cs", false },
  },
}
edgy.nvim (optional)
edgy integration
- Options
- Full Spec
opts = function(_, opts)
  local edgy_idx = LazyVim.plugin.extra_idx("ui.edgy")
  local symbols_idx = LazyVim.plugin.extra_idx("editor.outline")
  if edgy_idx and edgy_idx > symbols_idx then
    LazyVim.warn(
      "The `edgy.nvim` extra must be **imported** before the `outline.nvim` extra to work properly.",
      { title = "LazyVim" }
    )
  end
  opts.right = opts.right or {}
  table.insert(opts.right, {
    title = "Outline",
    ft = "Outline",
    pinned = true,
    open = "Outline",
  })
end
{
  "folke/edgy.nvim",
  optional = true,
  opts = function(_, opts)
    local edgy_idx = LazyVim.plugin.extra_idx("ui.edgy")
    local symbols_idx = LazyVim.plugin.extra_idx("editor.outline")
    if edgy_idx and edgy_idx > symbols_idx then
      LazyVim.warn(
        "The `edgy.nvim` extra must be **imported** before the `outline.nvim` extra to work properly.",
        { title = "LazyVim" }
      )
    end
    opts.right = opts.right or {}
    table.insert(opts.right, {
      title = "Outline",
      ft = "Outline",
      pinned = true,
      open = "Outline",
    })
  end,
}