Breadcrumbs are sequences of short strings indicating where you are in some big tree-like maze that is probably your code. Hopefully the screenshot above clears it up.
-
M-x breadcrumb-mode
is global mode. Will try to turn itself on conservatively and only if there's a project. -
M-x breadcrumb-local-mode
is a buffer-local minor mode, if you don't want the default heuristics for turning it on everywhere.
There's not much more to it. Breadcrumb will try to query imenu.el
and project.el
for the best information.
You can download breadcrumb via GNU Elpa with M-x package-install RET breadcrumb RET
Or if you'd like to install it manually you can download breadcrumb.el
and put it in
your load-path
similar to (add-to-list 'load-path "~/path/to/breadcrumb.el")
If you want some leet modeline you may also manually put the mode-line constructs
(:eval (breadcrumb-imenu-crumbs))
and
(:eval (breadcrumb-project-crumbs))
in your settings of the mode-line-format
or header-line-format
variables.
The shape and size of each breadcrumb groups may be tweaked via
breadcrumb-imenu-max-length
, breadcrumb-project-max-length
,
breadcrumb-imenu-crumb-separator
, and
breadcrumb-project-crumb-separator
.
The structure each of the breadcrumbs varies depending on whether
either project.el
and imenu.el
(or both) can do useful things for
your buffer.
For Project breadcrumbs, this depends on whether project.el
's
project-current
can guess what project the current buffer belongs
to.
For Imenu breadcrumbs, this varies. Depending on the major-mode
author's taste, the Imenu tree (in variable imenu--index-alist
) may
have different structure. Sometimes, minor mode also tweak the Imenu
tree in useful ways. For example, with recent Eglot (I think Eglot
1.14+), managed buffers get extra region info added to it, which makes
Breadcrumb show "richer" paths.