cider
cider copied to clipboard
Extend cider-browse-ns with name filtering
I can imagine someone might want to filter out variables, and only show functions, but I would like to only show the public API of an ns.
In my case the public API functions of some ns all have schemas, so instead of using (ns-publics ns) I'd like to use those names with a :schema key as part of their meta. For now I'll just hardcode this in, but that's obviously a really fragile solution.
Yeah, something like this is definitely in the cards, but I cannot make any promises when it will happen.
Guess we should start brainstorming on the actually implementation of this. Obviously having filtering is simple, but it's not clear what should the UI for this look like and what are will be the supported search queries.
Something like this would be pretty easy to implement today using the orchard.query namespace.
@bbatsov Regarding the UI: I think emulating ibuffer style filtering would be wonderful. ibuffer is a dired-like view of open buffers in emacs. For instance, to filter by name in an ibuffer buffer, I can use the chord / n then get a prompt for a name pattern. To clear any active filtering, I can just chord / /.
ibuffer has support for sorting, filter groups, refreshing, and a variety of other filters - for example buffer type. An analogue to buffer type filtering in the ns browser would be perhaps symbol type: filtering the viewer to show only functions or only variables. Maybe / f could be used to quickly show only functions. Emulating the filtering UI of ibuffer I think would be a good start for CIDER, and maybe open up the ns browser for future enhancements that are similar feeling to ibuffer and dired.
EDIT: I'll see if I can't prototype something for CIDER similar to ibuffer's filtering