"Tobias C. Rittweiler" tcr@freebits.de writes:
To make oneself familiar with someone else's code, it's often desirable to see what symbols are defined in a package. I've added a special inspector page for that purpose that will pop up if you inspect the package, and then click on the links to the external/internal symbols. The flags are the same as those that are presented in Fuzzy Completion.
I added a button to that page to group the symbols with respect to their respective classification, e.g. on #<PACKAGE "SWANK">:
BOUNDP ---------------------------------------------------------------- *ACTIVE-THREADS* *AFTER-INIT-HOOK* *AUTO-ABBREVIATE-DOTTED-PACKAGES* *BUFFER-PACKAGE* *BUFFER-READTABLE* ...
CLASS ---------------------------------------------------------------- %PACKAGE-SYMBOLS-CONTAINER CONNECTION FUZZY-MATCHING KEYWORD-ARG OPTIONAL-ARG SWANK-ERROR
FUNCTION ---------------------------------------------------------------- %%MAKE-PACKAGE-SYMBOLS-CONTAINER %CONTAINER.DESCRIPTION %CONTAINER.GROUPING-KIND %CONTAINER.SYMBOLS ...
GENERIC-FUNCTION ---------------------------------------------------------------- ALL-SLOTS-FOR-INSPECTOR COMPUTE-ENRICHED-DECODED-ARGLIST EXTRA-KEYWORDS ...
MACRO ---------------------------------------------------------------- ADD-HOOK DEFINE-SPECIAL DEFINE-STEPPER-FUNCTION DEFSLIMEFUN ...
...
Happy Browsing,
-T.
2007-04-17 Tobias C. Rittweiler <INSERT-EMAIL-HERE>
* swank.lisp: Instead of just having all the symbols of a package listed alphabetically in the inspector page recently introduced for that purpose, add a button to that page to group them by their classification.
(%package-symbols-container): New slot GROUPING-KIND. (%make-package-symbols-container): New function, wraps around %%MAKE-PACKAGE-SYMBOLS-CONTAINER, which will actually create the structure. We need this, to make GROUPING-DEFAULT an entirely internal affair.
(make-symbols-listing): New generic function to dispatch on GROUPING-KIND. (make-symbols-listing :symbol): Just the stuff that was priorly wired into INSPECT-FOR-EMACS (%PACKAGE-SYMBOLS-CONTAINER). (make-symbols-listing :classification): New; returns the passed symbols grouped by their classification. (inspect-for-emacs %package-symbols-container): Most code split off into MAKE-SYMBOLS-LISTING.