RefactorInsight: Enhancing IDE Representation of Changes in Git with Refactorings Information

08/25/2021
by   Zarina Kurbatova, et al.
0

Inspection of code changes is a time-consuming task that constitutes a big part of everyday work of software engineers. Existing IDEs provide little information about the semantics of code changes within the file editor view. Therefore developers have to track changes across multiple files, which is a hard task with large codebases. In this paper, we present RefactorInsight, a plugin for IntelliJ IDEA that introduces a smart diff for code changes in Java and Kotlin where refactorings are auto-folded and provided with their description, thus allowing users to focus on changes that modify the code behavior like bug fixes and new features. RefactorInsight supports three usage scenarios: viewing smart diffs with auto-folded refactorings and hints, inspecting refactorings in pull requests and in any specific commit in the project change history, and exploring the refactoring history of methods and classes. The evaluation shows that commit processing time is acceptable: on median it is less than 0.2 seconds, which delay does not disrupt developers' IDE workflows. RefactorInsight is available at https://github.com/JetBrains-Research/RefactorInsight. The demonstration video is available at https://youtu.be/-6L2AKQ66nA.

READ FULL TEXT
research
04/03/2020

Visualization of Methods Changeability Based on VCS Data

Software engineers have a wide variety of tools and techniques that can ...
research
12/07/2021

IntelliTC: Automating Type Changes in IntelliJ IDEA

Developers often change the types of program elements. Such a refactorin...
research
04/02/2019

The Impact of Systematic Edits in History Slicing

While extracting a subset of a commit history, specifying the necessary ...
research
08/05/2022

Bug-Fix Variants: Visualizing Unique Source Code Changes across GitHub Forks

Forking is a common practice for developers when building upon on alread...
research
07/28/2021

Sorrel: an IDE Plugin for Managing Licenses and Detecting License Incompatibilities

Software development is a complex process that includes many different t...
research
11/17/2021

Are automated static analysis tools worth it? An investigation into relative warning density and external software quality

Automated Static Analysis Tools (ASATs) are part of software development...
research
08/23/2021

Q A MAESTRO: Q A Post Recommendation for Fixing Java Runtime Exceptions

Programmers often use Q A sites (e.g., Stack Overflow) to understand a...

Please sign up or login with your details

Forgot password? Click here to reset