1. Forest: Structural Code Editing with Multiple Cursors
- Author
-
Voinov, Philippe
- Subjects
- SOFTWARE ENGINEERING, COMPUTER SCIENCE
- Abstract
Software developers sometimes have to repeat an edit in multiple parts of their codebase in order to maintain or extend their software. To let the user perform a repetitive edit, text editors provide multi-cursor editing, which applies editing commands in multiple locations simultaneously. However, multi-cursor text editing is limited, since each executed command must make the desired change regardless of which cursor executes it. To perform a wider range of repeated edits, some developers write refactoring scripts that work structurally. However, unlike multi-cursor editing, the process of developing a refactoring script is not interactive. We propose Forest, the first editor which specially integrates structural editing commands with multi-cursor editing. Compared to a text editor, Forest offers different editing commands, and therefore supports different multi-cursor edits. Forest allows performing edits similar to those from refactoring scripts, while still being interactive. We attempted to perform edits from 48 real-world refactoring scripts using Forest and found that 11 were possible, while another 17 would be possible with added features. Additionally, we investigated a real-world codebase, finding that ∼15% of commits contained edits with potential for multi-cursor editing.
- Published
- 2022