Searchfox prioritizes speed. So much so that in a past update of
sanding things down to keep searchfox streamlined, we sanded off
the icons on the context menu. But now they're back with more
icons than ever and UX-reviewed by a speedometer 3 performance
expert.
A variety of enhancements have been made to the diagramming
functionality, including hierarchical clustering among multiple
axes and major progress in deriving an intermediary representation
that we hope will enable the next steps in making the diagrams
accessible, a necessary step for the diagrams to graduate from
pre-alpha status. (Currently you need to go to
https://searchfox.org/mozilla-central/pages/settings.html and
change the "Default feature gate" from "Release" to "Alpha".
Alternately, there's a "Diagramming feature gate" further down the
page.) Right now the data powers new and improved "scroll the
diagram to the thing you wanted to see" functionality, as well as
"gaudy colors on hover that are helpful if your diagram fits on
one screen but otherwise confirm your suspicions that the diagram
is not useful because that edge just goes way off into space
somewhere off the page".
Additionally, major improvements to searchfox's data-model and
understanding of the code through the power of "writing heuristics
and labeling types with them" whack-a-mole[1]. The wins here are
things like diagrams that got very unhelpful once they got to
"SomeRunnable::Run" and thereby "nsIRunnable::Run" will now be
like "aha, an nsIRunnable subclass's Run method! I know that what
the user really wants is to see who created that runnable!". And
this works well as long as no one used MakeRefPtr, in which case
searchfox gives up because templates.
Blog posts with more details and screenshots and example links will be forthcoming. In the meantime, here's a quick set of additional query arguments that can be used to iterate on your diagrams and that will be helpfully provided via some nice UI stuff in the future that does not infuriate you and has smaug's UX seal of approval:
Also, there's now a synthetic "(file symbol)" at the end of the
current file's path bread crumbs. Diagrams triggered on this
symbol let you visualize our header include file graph. This is
only useful with `calls-between` because our include graphs are a
lot.
Andrew
1: https://github.com/mozsearch/mozsearch/blob/master/config_defaults/ontology-mapping.toml