Show simple item record

dc.contributor.author
Voinov, Philippe
dc.contributor.author
Rigger, Manuel
dc.contributor.author
Su, Zhendong
dc.date.accessioned
2022-12-02T13:54:08Z
dc.date.available
2022-12-02T12:34:20Z
dc.date.available
2022-12-02T13:54:08Z
dc.date.issued
2022-11
dc.identifier.isbn
978-1-4503-9909-8
en_US
dc.identifier.other
10.1145/3563835.3567663
en_US
dc.identifier.uri
http://hdl.handle.net/20.500.11850/584523
dc.description.abstract
Software developers frequently refactor code. Often, a single logical refactoring change involves changing multiple related components in a source base such as renaming each occurrence of a variable or function. While many code editors can perform such common and generic refactorings, they do not support more complex refactorings or those that are specific to a given code base. For those, as a flexible---albeit less interactive---alternative, developers can write refactoring scripts that can implement arbitrarily complex logic by manipulating the program's tree representation. In this work, we present Forest, a structural code editor that aims to bridge the gap between the interactiveness of code editors and the expressiveness of refactoring scripts. While structural editors have occupied a niche as general code editors, the key insight of this work is that they enable a novel structural multi-cursor design that allows Forest to reach a similar expressiveness as refactoring scripts; Forest allows to perform a single action simultaneously in multiple program locations and thus support complex refactorings. To support interactivity, Forest provides features typical for text code editors such as writing and displaying the program through its textual representation. Our evaluation demonstrates that 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. We believe that a multi-cursor setting plays to the strengths of structural editing, since it benefits from reliable and expressive commands. Our results suggest that multi-cursor structural editors could be practical for performing small-scale specialized refactorings.
en_US
dc.language.iso
en
en_US
dc.publisher
Association for Computing Machinery
en_US
dc.subject
Structural editing
en_US
dc.subject
Refactoring
en_US
dc.subject
Multi-cursor
en_US
dc.title
Forest: Structural Code Editing with Multiple Cursors
en_US
dc.type
Conference Paper
dc.date.published
2022-12-01
ethz.book.title
Onward! 2022: Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
en_US
ethz.pages.start
137
en_US
ethz.pages.end
152
en_US
ethz.event
2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! 2022)
en_US
ethz.event.location
Auckland, New Zealand
en_US
ethz.event.date
December 8-10, 2022
ethz.identifier.scopus
ethz.publication.place
New York, NY
en_US
ethz.publication.status
published
en_US
ethz.leitzahl
ETH Zürich::00002 - ETH Zürich::00012 - Lehre und Forschung::00007 - Departemente::02150 - Dep. Informatik / Dep. of Computer Science::02664 - Inst. f. Programmiersprachen u. -systeme / Inst. Programming Languages and Systems::09628 - Su, Zhendong / Su, Zhendong
en_US
ethz.leitzahl.certified
ETH Zürich::00002 - ETH Zürich::00012 - Lehre und Forschung::00007 - Departemente::02150 - Dep. Informatik / Dep. of Computer Science::02664 - Inst. f. Programmiersprachen u. -systeme / Inst. Programming Languages and Systems::09628 - Su, Zhendong / Su, Zhendong
en_US
ethz.date.deposited
2022-12-02T12:34:21Z
ethz.source
FORM
ethz.eth
yes
en_US
ethz.availability
Metadata only
en_US
ethz.rosetta.installDate
2022-12-02T13:54:09Z
ethz.rosetta.lastUpdated
2024-02-02T19:04:19Z
ethz.rosetta.versionExported
true
ethz.COinS
ctx_ver=Z39.88-2004&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.atitle=Forest:%20Structural%20Code%20Editing%20with%20Multiple%20Cursors&rft.date=2022-11&rft.spage=137&rft.epage=152&rft.au=Voinov,%20Philippe&Rigger,%20Manuel&Su,%20Zhendong&rft.isbn=978-1-4503-9909-8&rft.genre=proceeding&rft_id=info:doi/10.1145/3563835.3567663&rft.btitle=Onward!%202022:%20Proceedings%20of%20the%202022%20ACM%20SIGPLAN%20International%20Symposium%20on%20New%20Ideas,%20New%20Paradigms,%20and%20Reflections%20on%20Programming
 Search print copy at ETH Library

Files in this item

FilesSizeFormatOpen in viewer

There are no files associated with this item.

Publication type

Show simple item record