loctvl842 / breadcrumb.nvim

breadcrumb for neovim

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸ“¦ 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

  • We can turn on breadcrumb by put this in the config file:
require("breadcrumb").init()
  • Using method get_breadcrumb() combine with status line plugin for example lualine
local breadcrumb = function()
	local breadcrumb_status_ok, breadcrumb = pcall(require, "breadcrumb")
	if not breadcrumb_status_ok then
		return
	end
	return breadcrumb.get_breadcrumb()
end

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

  • add default highlight for icons

About

breadcrumb for neovim


Languages

Language:Lua 100.0%