Revizor: A Data-Driven Approach to Automate Frequent Code Changes Based on Graph Matching
Oleg Smirnov, Artyom Lobanov, Yaroslav Golubev, Elena Tikhomirova,, Timofey Bryksin

TL;DR
Revizor is a data-driven tool that automates frequent code changes by identifying recurrent patterns through graph matching, enabling quick fixes in Python IDEs like PyCharm.
Contribution
It introduces a graph-based approach to detect and automate complex code change patterns, facilitating the creation of custom IDE plugins for code refactoring.
Findings
Positive developer ratings for usability and performance
Supports complex distributed code patterns
Open-source implementation available on GitHub
Abstract
Many code changes that developers make in their projects are repeated and constitute recurrent change patterns. It is of interest to collect such patterns from the version history of open-source repositories and suggest the most useful of them as quick fixes. In this paper, we present Revizor - a tool aimed to build custom plugins for PyCharm, a popular Python IDE. A Revizor-based plugin can take change patterns and highlight potential places for their application in the developer's code editor. If the developer accepts the quick fix, the plugin automatically performs the edit. Our approach uses a graph-based representation of code changes, which allows it to support complex distributed code patterns. Experienced developers have also rated the usability and the performance of such Revizor-based plugin positively. The source code of the tool and test plugin prototype are available on…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Scientific Computing and Data Management · Software System Performance and Reliability
