The navigel package is a library that makes it simpler for Emacs Lisp developers to define user-interfaces based on tablists (also known as tabulated-lists). Overriding a few (CL) methods and calling `navigel-open' is all that's required to get a nice UI to navigate your domain objects (files, music library, database, etc.).
Navigel displays "entities" in a tablist. An "entity" is whatever you
want that has a name. If an entity defines some "children", then
RET on the entity will list its children in another
Some features of navigel include:
RETon an entity lists the entity's children in another
^opens the parent of the current entity;
mmarks the entity at point;
ddeletes the marked entities.
This package depends on tablist to get support for marking, deletion and more. On top of the tablist package, navigel provides an easy way to specify the content of your tabulated lists: through entities specified with method overrides. This makes it a breath to have tablist-based navigation within domain objects.
This code is a library and is meant for Emacs Lisp developers. The source code is well documented and organized in sections. Please have a look at it.
Please have a look at the file for an example on how to use the library. This file guides the reader through an implementation of a tablist-based directory navigator with support for marking and deleting: