一句话:为 IntelliJ IDEA 构建插件,将重构自动折叠并提供说明,使开发者专注于行为变更。
检查代码变更在软件工程师日常工作中耗时且困难,现有 IDE 在文件编辑视图中很少揭示变更的语义。为此,作者提出 RefactorInsight,一个面向 IntelliJ IDEA 的插件,为 Java 和 Kotlin 代码变更引入智能 diff:自动折叠重构并给出其描述,让用户聚焦于修复缺陷、新增功能等会改变代码行为的变更。该工具支持三种使用场景:查看带自动折叠重构和提示的智能 diff、检查 pull request 及任意特定提交中的重构、以及探索方法和类的重构历史。评估显示提交处理时间中位数低于 0.2 秒,这一延迟不会打断开发者的 IDE 工作流。
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.
DOI 原文 ·
@inproceedings{paperbot6631,
title = {RefactorInsight: Enhancing IDE Representation of Changes in Git with Refactorings Information},
author = {Zarina Kurbatova and Vladimir Kovalenko and Ioana Savu and Bob Brockbernd and Dan Andreescu and Matei Anton and Roman Venediktov and Elena Tikhomirova and Timofey Bryksin},
booktitle = {ASE},
year = {2021},
doi = {10.1109/ase51524.2021.9678646}
}