Skip to content

The ReachHover plugin, presented in the paper "Breaking the Bento box: Accelerating Visual Momentum in Data-flow Analysis" in ICSME 2023

Notifications You must be signed in to change notification settings

jyoo980/reach-hover

Repository files navigation

reach-hover

Build Downloads

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.

Running reach-hover

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

Screenshots

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.

Installation

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.

From Binaries

Distributions of reach-hover are available under releases, which do not require you to download the source and build it.

From Source

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.

Research

About

The ReachHover plugin, presented in the paper "Breaking the Bento box: Accelerating Visual Momentum in Data-flow Analysis" in ICSME 2023

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages