loctvl842 / breadcrumb.nvim

breadcrumb for neovim
18 stars 1 forks source link
breadcrumb neovim

πŸ“¦ Installation

use("loctvl842/breadcrumb.nvim", requires = {"nvim-tree/nvim-web-devicons"})

βš™οΈ Configuration

require("breadcrumb").setup({
    disabled_filetype = {
        "",
        "help",
    },
    icons = {
        File = " ",
        Module = " ",
        Namespace = "ο – ",
        Package = " ",
        Class = "ο – ",
        Method = " ",
        Property = "ξž› ",
        Field = "ξœ– ",
        Constructor = "ο₯ ",
        Enum = "ο©—",
        Interface = "ο©—",
        Function = "οž” ",
        Variable = " ",
        Constant = "ο£Ύ ",
        String = "ο”« ",
        Number = " ",
        Boolean = "β—© ",
        Array = "ο™© ",
        Object = " ",
        Key = " ",
        Null = "ο³  ",
        EnumMember = " ",
        Struct = "ο – ",
        Event = " ",
        Operator = "οš” ",
        TypeParameter = "οžƒ ",
    },
    separator = ">",
    depth_limit = 0,
    depth_limit_indicator = "..",
        color_icons = true,
    highlight_group = {
        component = "BreadcrumbText",
        separator = "BreadcrumbSeparator",
    },
})

To have breadcrumb, it must be attached to lsp server.

Example:

local breadcrumb = require("breadcrumb")

local on_attach = function(client, bufnr)
    ...
    if client.server_capabilities.documentSymbolProvider then
        breadcrumb.attach(client, bufnr)
    end
    ...
end

πŸš€ Usage

local config = { winbar = { lualine_a = {}, lualine_b = {}, lualine_c = { breadcrumb }, lualine_x = {}, lualine_y = {}, lualine_z = {}, }, inactive_winbar = { lualine_a = {}, lualine_b = {}, lualine_c = { breadcrumb }, lualine_x = {}, lualine_y = {}, lualine_z = {}, }, }

lualine.setup(config)



## Command
- `BreadcrumbEnable` command to enable `breadcrumb`
- `BreadcrumbDisable` command to disable `breadcrumb`

## TODO
- [x] add default highlight for icons