SEAug 25, 2021

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

arXiv:2108.11202v11 citationsHas Code
AI Analysis

This addresses the time-consuming task of code change inspection for software engineers, though it is incremental as it builds on existing IDE tools.

The paper tackles the problem of inspecting code changes in software development by introducing RefactorInsight, a plugin for IntelliJ IDEA that auto-folds refactorings in diffs for Java and Kotlin, resulting in a median commit processing time of less than 0.2 seconds.

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.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes