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.
翻译:对代码修改的检查是一项耗时的工作,是软件工程师日常工作的一大部分。 现有的 IDEs 几乎没有提供关于文件编辑器视图中代码修改的语义的信息。 因此开发者必须跟踪多个文件的更改, 这是大代码库的一项艰巨任务 。 在此文件中, 我们展示IntelliJIDE 的 RefactorInsight 插件, 该插件为 Java 和 Kotlin 的代码修改引入智能 diff, 该插件的代码修改是自动翻叠的, 并提供了它们的描述, 从而允许用户关注修改代码行为的变化, 如错误修正和新特性。 RefactorInsight 支持三种使用方案: 查看智能 diffs, 使用自动折叠的重构和提示。 在项目修改历史中, 查看调用的请求和任何特定承诺中的重新设置, 并探索方法和课程的重新设置历史。 评估显示, 承诺的处理时间可以接受: 中位为 0. 2 秒, 延迟不会干扰开发者 IDE 的工作流程。 RefactorInsight Q. at the the at the Refairus/ Revision