reach-hover
is a research plugin developed at the
Software Practices Lab at the
University of British Columbia, Vancouver.
It aims to make answering
reachability questions
easier for software developers, and surface information about them faster than
conventional tools.
Currently, reach-hover
supports two reachability questions, which are:
- "How was this value (could be a variable, an object, etc...) created?"
- "How is this value modified?"
The plugin presents these questions when a user hovers over a value of interest in code. reach-hover
currently has
full support for Java and Kotlin.
Due to changes in JetBrains' IntelliJ IDEA Platform API, reach-hover
is
not stable.
I would not recommend using it for development at this time.
If you want to run a historical (stable) version, you can run the following Gradle task from the command line:
% ./gradlew runIDE
Hovering over an element of interest will invoke a popup dialogue with the option to investigate it further in the context of a reachability question.
Selecting the question of interest will bring up an exploratory popup where a user is able to trace the dataflow to the element under inspection.
Please note that this tool is a research prototype. Bugs are to be expected, but feel free to file an issue for me to look at.
Distributions of reach-hover
are available under
releases, which do not
require you to download the source and build it.
If you'd prefer to build the plugin from source, please clone the repository and run the Gradle tasks available.
You can build the .jar
by selecting Tasks -> build -> jar
. You can skip
this step altogether and run reach-hover
on a locally running IntelliJ IDEA
instance.
Plugin based on the IntelliJ Platform Plugin Template.